如何将npm安装到指定的目录?

运行npm install <package>时可以指定目标目录吗?

你可以使用--prefix选项:

 mkdir -p ./install/here/node_modules npm install --prefix ./install/here <package> 

该软件包将被安装在./install/here/node_modulesmkdir是必需的,因为npm可能会select层次结构中较高层的已经存在的node_modules目录。 (请参阅有关文件夹的npm文档 。)

在文档中指出:使用前缀选项和全局选项一起使用

前缀 config默认为安装节点的位置。 在大多数系统上,这是/ usr / local 。 在Windows上,这是node.exe二进制文件的确切位置。 在Unix系统上,它是上一级的,因为节点通常安装在{prefix} / bin / node而不是{prefix} /node.exe

全局标志被设置时,npm把东西安装到这个前缀中。 如果未设置,则使用当前软件包的根目录或当前工作目录(如果不在软件包中)。

(由他们强调)

所以在你的根目录下你可以安装

 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也会自动创buildnode_modules文件夹。 您也可以在当前目录中有一个package.json ,然后使用--prefix选项将其安装在指定的目录中:

 npm install --prefix ./install/here 

注意:NPM尊重您通过--prefix选项指定的path。 只有在不使用--prefix选项的情况下使用npm install时,它才能按照npm文件夹的文档来解决。