Comments (5)
Can you give me a better idea of your directory structure? Like this?
app/
node_modules/
webapp/
node_modules/
Or, even better, can you send me a code sample the demonstrates this behavior?
from node-app-root-path.
My directory structure looks like this,
my-web-app/
node_modules/
app-root-path/
my-module/
Normally, if I were to clone and npm install
inside my-module, the directory structure would look like,
my-module/
node_modules/
app-root-path/
However, npm v3 sees that the same version of app-root-path is used both by my-web-app
and my-module
and so it moves it up to flatten the dependency hierarchy.
I can put together a code sample!
from node-app-root-path.
Here you go:
https://github.com/doublemarked/app-root-issue-17
https://github.com/doublemarked/app-root-issue-17-module
To reproduce,
- Clone the module by itself,
npm install
thennode index.js
- Then, clone the base project separately (which depends on the module),
npm install
andnode index.js
Output is like:
Scallop:app-root-issue-17-module heath$ node index.js
MODULE APPROOT: /Users/heath/Projects/app-root-issue-17-module
Scallop:app-root-issue-17 heath$ node index.js
BASE APPROOT:/Users/heath/Projects/app-root-issue-17
MODULE APPROOT: /Users/heath/Projects/app-root-issue-17
MYMOD: { appRootPath: '/Users/heath/Projects/app-root-issue-17' }
from node-app-root-path.
Oh, I inderstand. Yeah--this module isn't meant to solve that problem. app-root-path
is meant to find the app's root path, regardless of the directory structure, so what you're seeing is exactly the expected behavior.
I'll try to post a code sample later tonight that would do what you're trying to do.
from node-app-root-path.
Here's a code sample that can get you the path to the current module, no matter where it's called:
function moduleDirectory(dir, pathSeparator) {
var sep = pathSeparator || '/';
var search = 'node_modules' + sep;
var moduleIndex = dir.lastIndexOf(search);
var sepIndex = dir.indexOf(sep, moduleIndex + search.length);
if (-1 === sepIndex) {
return dir;
}
return dir.substring(0, sepIndex);
}
See this JSBin for a demo:
http://jsbin.com/qazukeluve/1/edit?js,console
from node-app-root-path.
Related Issues (20)
- node_modules isn't cool anymore, what to do HOT 12
- Webpack warning: Critical dependency: the request of a dependency is an expression HOT 4
- Support for yarn workspaces HOT 8
- npm package.json version != github repo version HOT 1
- Path resolution in npm linked modules report module and not root app path. HOT 6
- New version broke webpack build with TypeORM HOT 3
- Auto including index.js HOT 1
- PNPM support?
- Latest NPM release failed (3.0.0) HOT 1
- What constituted the bump in major version? HOT 1
- Incompatible with Browserify HOT 1
- Mistenken added issue HOT 1
- Issues
- Issues
- Androidapk merge HOT 1
- wrongful access
- Google Cloud Functions reports incorrect path HOT 3
- Need Yarn 2 monorepo support
- Package throws an error when imported in an ES module installed globally on Ubuntu HOT 1
- ReferenceError: __dirname is not defined in ES module scope HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-app-root-path.