有没有一种方法可以将应用程序中的node_modules目录移动到/ vendor / node_modules,例如bower对bowerrc文件的处理?我以为可以在package.json中指定它,但是我似乎找不到解决方案。非常感谢您的帮助。
node_modules
inpackage.json
,而xShirase的答案根本没有提供实现此目的的方法。
有没有一种方法可以将应用程序中的node_modules目录移动到/ vendor / node_modules,例如bower对bowerrc文件的处理?我以为可以在package.json中指定它,但是我似乎找不到解决方案。非常感谢您的帮助。
node_modules
inpackage.json
,而xShirase的答案根本没有提供实现此目的的方法。
Answers:
是的,您可以,只需设置NODE_PATH env变量:
export NODE_PATH='yourdir'/node_modules
根据文档:
如果将NODE_PATH环境变量设置为以冒号分隔的绝对路径列表,则节点将在这些路径中搜索模块(如果未在其他位置找到)。(注意:在Windows上,NODE_PATH用分号而不是冒号分隔。)
此外,节点将在以下位置搜索:
1:$ HOME / .node_modules
2:$ HOME / .node_libraries
3:$ PREFIX / lib / node
其中$ HOME是用户的主目录,而$ PREFIX是节点的已配置node_prefix。
这些主要是出于历史原因。强烈建议您将依赖项本地放置在node_modules文件夹中。它们将更快,更可靠地加载。
process.env
简而言之:这是不可能的,并且似乎永远也不会被支持(请参阅此处https://github.com/npm/npm/issues/775)。
使用CLI或ENV-Variables(请参阅当前选择的答案)、. npmrc-Config-Files或npm link
-它们都具有一些共同点:它们有很多共同点:它们不只是特定于项目的,而且总是某种的global
解决方案。
对我来说,这些解决方案都不是真正干净的,因为您的项目的参与者总是需要创建一些特殊的配置或具有一些特殊的知识-他们不能只是简单npm install
而有效。
因此:要么必须将package.json放在要安装node_modules的目录中,要么必须保证它们始终位于项目的根目录中。
我不确定这是否是您的初衷,但由于无法安装,我最终遇到了这个问题 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