【发布时间】:2016-06-15 14:21:58
【问题描述】:
我熟悉 Python 的包管理器pip。 Pip 有一个选项可以指定“never make any network calls,所有包和依赖项都应该从本地目录获取”。
npm 是否可以实现类似的功能?
我想要一个更轻量级的构建过程,并希望所有节点包都从带有 .tgz 文件或类似文件的本地文件夹安装。
【问题讨论】:
我熟悉 Python 的包管理器pip。 Pip 有一个选项可以指定“never make any network calls,所有包和依赖项都应该从本地目录获取”。
npm 是否可以实现类似的功能?
我想要一个更轻量级的构建过程,并希望所有节点包都从带有 .tgz 文件或类似文件的本地文件夹安装。
【问题讨论】:
如果有问题的文件夹将用作某种包存储库,我认为npm link 应该可以完成这项工作
cd ~/<local-packages-dir>/<pkg>
npm link
cd ~/<project-dir>
npm link <pkg> // installs package to ~/<project-dir>/node_modules/<pkg>
链接后对~/<local-packages-dir>/<pkg> 所做的任何更改都将反映在~/<project-dir>/node_modules/<pkg> 中。
还要注意,npm install 会直接安装压缩包或文件夹
npm install <folder>:安装位于文件系统文件夹中的软件包。
npm install <tarball file>:安装一个位于文件系统上的包。注意:如果您只想将 dev 目录链接到您的 npm 根目录,您可以使用
npm link更轻松地做到这一点。示例:
npm install ./package.tgz
【讨论】:
npm install folder/tarball 如何处理依赖关系?
package.json 中的依赖项发生冲突,否则它将安装该依赖项嵌套在 node_modules 的依赖包文件夹中.
npm install folder/tarball 会尝试从 Internet 下载依赖项吗?