如何修改项目加载包默认的node_modules路径

修改项目默认node_modules路径
npm install --global xxx 属于全局安装
npm install xxx 属于本地安装
1、全局路径
Windows下的Nodejs npm路径是appdata 
cmd下执行以下命令
npm config set cache "D:\nodejs\node_cache"
npm config set prefix "D:\nodejs\node_global"
如果无效
在nodejs的安装目录中找到node_modules\npm\.npmrc文件
修改如下即可:
prefix = D:\nodejs\node_global
cache = D:\nodejs\node_global
[重要]环境变量配置:在环境变量path追加:D:\nodejs\node_global;
2、本地路径(项目级)
NODE_PATH 是干什么的呢?
操作系统中都会有一个PATH环境变量,想必大家都知道,当系统调用一个命令的时候,就会在PATH变量中注册的路径中寻找,如果注册的路径中有就调用,否则就提示命令没找到。
那 NODE_PATH 就是NODE中用来寻找模块所提供的路径注册环境变量
[加载机制]
NODE_PATH中的路径被遍历是发生在从项目的根位置递归搜寻 node_modules 目录,直到文件系统根目录的 node_modules,如果还没有查找到指定模块的话,就会去 NODE_PATH中注册的路径中查找。
这样,我们的项目就可以共享node_modules的依赖包。
差异性的解决方法
如果 项目A 使用了,express的3.x版本,项目B 使用了 express的4.x版本,那这种情况该怎么办呢?
可以将 NODE_PATH 指定的位置中存放 express的4.x版本,再将 项目B的 node_modules 目录中放置 3.x 版本。
这样就解决了模块版本差异性问题。
问题
在使用 --global 参数的时候 --save 或 --save-dev参数是无效的。
这样就带来一个问题。此时 package.json 中的 dependencies, devDependencies 将无法享受到npm自动更新带来的便利

你可能感兴趣的:(node)