运行npm install <package>时是否可以指定目标目录?
npm install <package>
你可以使用--prefix选项:
--prefix
mkdir -p ./install/here/node_modules npm install --prefix ./install/here <package>
然后包将被安装在./install/here/node_modules中。之所以需要mkdir,是因为npm可能会选择层次结构中更高的一个已经存在的node_modules目录。(参见关于文件夹的NPM文档)。
./install/here/node_modules
mkdir
node_modules
前缀配置默认为节点安装的位置。在 在大多数系统中,这是/usr/local。在窗户上,这是完全正确的 node.exe二进制文件的位置。在Unix系统上,它是一个更高的级别, 因为节点通常安装在{前缀}/ bin /节点而不是 {前缀}/ node.exe > < /强。 当全球标志被设置时,npm将东西安装到这个前缀中。 未设置时,将使用当前包的根目录或 .当前工作目录,如果不在包中
前缀配置默认为节点安装的位置。在 在大多数系统中,这是/usr/local。在窗户上,这是完全正确的 node.exe二进制文件的位置。在Unix系统上,它是一个更高的级别, 因为节点通常安装在{前缀}/ bin /节点而不是 {前缀}/ node.exe > < /强。
(他们强调)
所以在根目录下你可以安装
npm install --prefix <path/to/prefix_folder> -g
并将node_modules文件夹安装到该文件夹中
<path/to/prefix_folder>/lib/node_modules
从npm 3.8.6版本开始,你可以使用
npm install --prefix ./install/here <package>
安装到指定目录。即使在更高层次结构中已经存在node_modules目录,NPM也会自动创建node_modules文件夹。 你也可以在当前目录中有一个package.json,然后使用--prefix选项将它安装到指定的目录:
package.json
npm install --prefix ./install/here
从npm 6.0.0开始,你可以使用
npm install --prefix ./install/here ./
安装包。./install/here"目录中。我在Mac上注意到一件事,它在node_modules目录内创建了一个指向父文件夹的符号链接。但是,它仍然有效。
注意:NPM尊重你通过--prefix选项指定的路径。它根据关于文件夹的NPM文档进行解析,只有在没有--prefix选项的情况下使用了npm install。
npm install
我正在使用一个powershell构建,如果不改变当前目录,就无法让npm运行。
最后使用start命令并指定工作目录:
start "npm" -ArgumentList "install --warn" -wo $buildFolder
目前还没有文档说明如何在任意目录中安装包。您应该切换到目标目录,确保它有package.json,然后使用常规命令。
虽然目前有一个未记录的选项名为--prefix, 这个特性可能会在未来的版本中被移除。至少,它不打算将其作为一个官方特性记录下来。