【问题标题】:npm install from local packages only仅从本地软件包 npm 安装
【发布时间】:2016-06-15 14:21:58
【问题描述】:

我熟悉 Python 的包管理器pip。 Pip 有一个选项可以指定“never make any network calls,所有包和依赖项都应该从本地目录获取”。

npm 是否可以实现类似的功能?

我想要一个更轻量级的构建过程,并希望所有节点包都从带有 .tgz 文件或类似文件的本地文件夹安装。

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    如果有问题的文件夹将用作某种包存储库,我认为npm link 应该可以完成这项工作

    cd ~/<local-packages-dir>/<pkg>
    npm link
    
    cd ~/<project-dir>
    npm link <pkg> // installs package to ~/<project-dir>/node_modules/<pkg>
    

    链接后对~/&lt;local-packages-dir&gt;/&lt;pkg&gt; 所做的任何更改都将反映在~/&lt;project-dir&gt;/node_modules/&lt;pkg&gt; 中。


    还要注意,npm install 会直接安装压缩包或文件夹

    npm install &lt;folder&gt;:

    安装位于文件系统文件夹中的软件包。

    npm install &lt;tarball file&gt;:

    安装一个位于文件系统上的包。注意:如果您只想将 dev 目录链接到您的 npm 根目录,您可以使用 npm link 更轻松地做到这一点。

    示例:

         npm install ./package.tgz
    

    【讨论】:

    • 好的,我明白了。 npm install folder/tarball 如何处理依赖关系?
    • @codeape 处理依赖项是什么意思?它应该像对待其他 NPM 包一样对待它们,它会尝试在顶层安装它们,除非与您的 package.json 中的依赖项发生冲突,否则它将安装该依赖项嵌套在 node_modules 的依赖包文件夹中.
    • 我的意思是:npm install folder/tarball 会尝试从 Internet 下载依赖项吗?
    猜你喜欢
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多