有没有办法将应用程序中的node_modules目录移动到bowerrc文件中,像bower那样/ vendor/node_modules?我认为它可以在package.json中指定,但我似乎无法找到解决方案.非常感谢您的帮助.
xSh*_*ase 45
是的,你可以,只需设置NODE_PATH env变量:
export NODE_PATH='yourdir'/node_modules
Run Code Online (Sandbox Code Playgroud)
根据文件:
如果NODE_PATH环境变量设置为以冒号分隔的绝对路径列表,则节点将在这些路径中搜索模块(如果在其他位置找不到它们).(注意:在Windows上,NODE_PATH由分号而不是冒号分隔.)
此外,节点将在以下位置搜索:
1:$ HOME/.node_modules
2:$ HOME/.node_libraries
3:$ PREFIX/lib/node
其中$ HOME是用户的主目录,$ PREFIX是节点配置的node_prefix.
这些主要是出于历史原因.强烈建议您将依赖项本地放在node_modules文件夹中.它们的加载速度更快,更可靠.
Cha*_*ear 23
简而言之:这是不可能的,因为它似乎永远不会得到支持(见https://github.com/npm/npm/issues/775).
使用CLI或ENV-Variables(参见当前选定的答案),.npmrc-Config-Files或npm link
- 它们都有一个共同之处是有一些hacky work-arrounds :它们从来不仅仅是项目特定的,但总是某种的global
解决方案.
对我来说,这些解决方案都不是真的很干净,因为你的项目的贡献者总是需要创建一些特殊的配置或者有一些特殊的知识 - 它们不能只是npm install
它的工作原理.
所以:您必须将package.json放在您希望安装node_modules的同一目录中,或者将它们始终放在项目的root-dir中.
纱线支持此功能:
# .yarnrc file in project root
--modules-folder /node_modules
Run Code Online (Sandbox Code Playgroud)
但是您的经验可能会有所不同,具体取决于您使用的软件包。我不确定您是否想进入那个兔子洞。
我不确定这是否是您要记住的问题,但是我最终遇到了这个问题,因为由于无法将node_modules
其安装在不支持符号链接的文件系统(VM“共享”文件夹)上,所以无法在项目目录中进行安装)。
我发现以下解决方法:
package.json
文件复制到其他文件系统上的临时文件夹npm install
有node_modules
目录复制回项目目录,cp -r --dereference
用于将符号链接扩展为副本。我希望这可以帮助其他人在寻找方法转移node_modules
到其他文件系统时遇到这个问题。
还有另一种解决办法,这我在GitHub的问题是@Charminbear挂发现,但是这并不工作grunt
,因为它不支持NODE_PATH
按https://github.com/browserify/resolve/issues/136:
假设您已经拥有
/media/sf_shared
并且无法在其中安装符号链接,这意味着您实际上无法从/media/sf_shared/myproject
其中进行npm install, 因为某些模块使用了符号链接。
$ mkdir /home/dan/myproject && cd /home/dan/myproject
$ ln -s /media/sf_shared/myproject/package.json
(您可以朝这个方向进行符号链接,只是不能在/ media / sf_shared内部创建一个)$ npm install
$ cd /media/sf_shared/myproject
$ NODE_PATH=/home/dan/myproject/node_modules node index.js
归档时间: |
|
查看次数: |
94512 次 |
最近记录: |