Answers:
您可以使用以下--prefix
选项:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
软件包将安装在中./install/here/node_modules
。mkdir
之所以需要,是因为npm否则可能会选择node_modules
层次结构中较高位置的一个已经存在的目录。(请参阅文件夹上的npm文档。)
npm install
(没有包名)的路径?我直接thired这一点,但随后NPM验看package.json
中{prefix}
。我的另一个目标是能够让packages.json
in在项目根目录中并同时将所有软件包安装在中{project root}/{project webroot}
。
npm install
,但是--prefix
,如果它没有引起递归,那似乎是一个更好的解决方案。
在文档中指出:将prefix选项与global选项一起使用:
的前缀配置的默认值到安装节点的位置。在大多数系统上,这是/ usr / local。在Windows上,这是node.exe二进制文件的确切位置。在Unix系统上,它是上一级的,因为node通常安装在{prefix} / bin / node而不是 {prefix} /node.exe上。
当全球标志设置,NPM安装的东西到这个前缀。如果未设置,它将使用当前软件包的根目录,或者使用当前工作目录(如果尚未在软件包中)。
(他们强调)
因此,您可以在根目录中安装
npm install --prefix <path/to/prefix_folder> -g
它将把node_modules
文件夹安装到文件夹中
<path/to/prefix_folder>/lib/node_modules
require
在全球范围内安装软件包,可以吗?
从npm 3.8.6版开始,您可以使用
npm install --prefix ./install/here <package>
安装在指定目录中。node_modules
即使node_modules
上级层次结构中已经存在目录,NPM 也会自动创建文件夹。您还可以package.json
在当前目录中有一个,然后使用--prefix
选项将其安装在指定的目录中:
npm install --prefix ./install/here
从npm 6.0.0开始,您可以使用
npm install --prefix ./install/here ./
在当前目录中将package.json安装到“ ./install/here”目录中。我在Mac上注意到一件事,它在node_modules目录内创建了一个指向父文件夹的符号链接。但是,它仍然有效。
注意:NPM支持您通过该--prefix
选项指定的路径。仅在不带选项使用的情况下,才根据npm文档对文件夹进行解析。npm install
--prefix
Can't install <current directory>: Missing package name
package.json
文件位于./install/here