当运行npm install <package>时,是否可以指定一个目标目录?
你可以使用——prefix选项:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
包将被安装在。/install/here/node_modules目录下。mkdir是必需的,因为npm可能会选择层次结构中更高的一个已经存在的node_modules目录。(请参阅npm文档中的文件夹。)
在文档中这样写道: prefix选项和global选项一起使用:
前缀配置默认为节点的安装位置。在 大多数系统都是/usr/local。在窗户上,这是完全正确的 node.exe二进制文件的位置。在Unix系统上,它是一个更高的级别, 因为node通常安装在{prefix}/bin/node而不是 {前缀}/ node.exe。 当设置了global标志时,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也会自动创建node_modules文件夹。 你也可以打包。然后使用——prefix选项将其安装到指定的目录中:
npm install --prefix ./install/here
从npm 6.0.0开始,你可以使用
npm install --prefix ./install/here ./
安装包。Json在当前目录到”。/安装/”目录。我在Mac上注意到一件事,它在node_modules目录内创建了一个指向父文件夹的符号链接。但是,它仍然有效。
注意:NPM尊重你通过——prefix选项指定的路径。它根据npm文档解析文件夹,仅当npm install不带——prefix选项时使用。
我正在使用一个powershell构建,如果不改变当前目录,就无法让npm运行。
最后使用start命令并指定工作目录:
start "npm" -ArgumentList "install --warn" -wo $buildFolder
目前还没有文档说明如何在任意目录中安装包。你应该改变到目标目录,确保它有一个包。Json,然后使用常规命令。
虽然目前有一个名为——prefix的无文档选项,但在未来的版本中可能会删除该特性。至少,它不打算将其作为一个官方特性记录下来。
推荐文章
- npm犯错!代码UNABLE_TO_GET_ISSUER_CERT_LOCALLY
- Access-Control-Allow-Origin不允许Origin < Origin >
- 如何获得所有已注册的快捷路线?
- 你可以为你的组织托管一个私有的存储库来使用npm吗?
- 如何定位父文件夹?
- Gulp命令未找到-安装Gulp后错误
- 在Node.js中写入文件时创建目录
- 如何将自定义脚本添加到包中。Json文件,运行javascript文件?
- 使用child_process。execSync但保持输出在控制台
- SyntaxError:在严格模式下使用const
- 在Node.js中递归复制文件夹
- 如何在node.js中设置默认时区?
- “react-scripts”不被视为内部或外部命令
- 如何正确地读取异步/等待文件?
- 错误:无法验证nodejs中的第一个证书