【问题标题】:how to use npm to install all node modules in local network?如何使用 npm 在本地网络中安装所有节点模块?
【发布时间】:2019-09-05 19:41:56
【问题描述】:

我的节点应用程序将部署在无法访问互联网的银行中。我可以下载本地目录中的所有节点模块,然后从中安装它们,或者只是将 node_modules 复制到银行机器上吗?任何安全实用的建议将不胜感激,谢谢。


如何在不使用 internet 的情况下添加 node_modules 依赖项。

【问题讨论】:

    标签: node.js npm npm-install offline


    【解决方案1】:

    将 offline-npm 添加到您的项目以提供与 npm 兼容的 tgz 文件,该文件包含使用 npm install 进行离线安装的所有依赖项。

    此外,您可以使用 offline-npm -n 从本地 npm 缓存目录安装软件包

    对于安装

    npm install -g offline-npm
    

    用法

    1) 打开终端并转到您要准备离线使用的项目。此文件夹需要包含一个package.json 文件。

    2) 准备您的项目以供离线使用

    offline-npm --add
    

    3) 这会更改 package.json 文件并添加一个包含所有依赖项的离线文件夹。

    打包你的项目

    npm pack
    

    更多详情,请访问Link
    希望这个答案对你有用。

    【讨论】:

    • 谢谢~我已经解决了离线使用纱线的问题。
    【解决方案2】:

    通常,您会希望将您的 node_modules 捆绑到您的可部署工件中。

    这里有一些关于任何本机依赖项的问题,因为您需要将构建环境的 nodejs 版本与目标系统相匹配。

    根据我的经验,实现这一目标的最简单方法是使用 docker 构建和打包您的部署。虽然直接在主机上运行时可以这样做,但您可能会发现最安全的做法是避免使用本机依赖项来消除任何因 nodejs 或 os 更新而中断的风险。

    我也成功地将nodejs二进制文件打包到我的部署工件中,直接部署在centos主机上,但是当时我们混合使用centos 6和centos 7主机,这带来了与不同glibc相关的额外复杂性导致 nodejs 无法从系统提供的库启动的版本。

    简而言之,如果可以的话,我会使用 docker 将您的应用程序打包成一个完全独立的映像。

    【讨论】:

    • Docer 是不错的选择,但是我们在银行一直没有root权限,无法安装docer。如果我们可以保持节点版本不变,那么通过复制node_modules目录来使用离线节点模块是不是一个好方法?
    • 是的,所以基本上如果 docker 不是一个选项,我会将 node_modules 包含在您的部署工件中,大概是一个 tar 球/zip 文件,并确保您使用相同的操作系统和 nodejs 版本ci 盒作为您的生产盒。
    【解决方案3】:

    您可以将 node_modules 复制到部署机器中,但这是不好的做法。

    还有其他解决方案,例如使用 local-npm 包...您的 npm 安装从注册表中获取,然后模块及其依赖项存储在本地 PouchDB 数据库中。这会缓存它们,以便后续 npm 安装使用本地缓存而不是调用网络。 local-npm 还负责在模块更改时保持更新。它通过侦听远程注册表的更改来做到这一点,因此您不必担心过时。

    或捆绑您的软件包以离线使用它们,您可以访问此链接以获取有关离线安装 npm 软件包的更多详细信息: https://addyosmani.com/blog/using-npm-offline/

    【讨论】:

      【解决方案4】:

      如何在本地网络中安装节点模块?

      1。解决方案:yarn offline 和 'Offline Mirro'

      Yarn 的主要优点之一是它可以从位于文件系统中的文件安装 node_modules。我们称其为“离线镜像”,因为它会镜像在第一次构建期间从注册表下载的文件,并将它们存储在本地以供将来构建。

      2。新问题:本地网络如何使用yarn?

      下载yarn.tar.gz到本地仓库,安装到本地node_modules目录。

      npm install yarn.tar.gz --no-save
      

      3。用法

      #运行yarn install,将节点模块(.tar.gz)下载到离线镜像目录'$REPOSITORY/yarn/yarn-offline-mirror'。

      npm run online-install
      

      # 使用 yarn.lock 文件,从离线镜像目录 '$REPOSITORY/yarn/yarn-offline-mirror' 安装 node_modules

      npm run offline-install
      

      4。问题

      4.1。问题1

      4.1.1。描述

      error can`t make a request in offline mode("http://....")

      4.1.2.原因

      间接依赖无法下载到离线镜像目录

      4.1.3。解析度
      yarn config set yarn-offline-mirror-pruning false
      

      5。 Github 演示

      yarn-offline-deploy-demo

      6。参考

      1. Running Yarn offline

      【讨论】:

        猜你喜欢
        • 2023-04-01
        • 2011-12-26
        • 2022-01-03
        • 1970-01-01
        • 2020-04-27
        • 2014-06-12
        • 1970-01-01
        • 1970-01-01
        • 2012-10-29
        相关资源
        最近更新 更多