【问题标题】:How to install an npm package on a standalone offline server?如何在独立的离线服务器上安装 npm 包?
【发布时间】:2021-04-12 12:11:22
【问题描述】:

我正在尝试在我的 react 项目中安装 react-cookie 依赖项。 React 项目在没有互联网连接的独立离线网络上运行。依赖项被打包到一个 tarball 文件中并上传到服务器上。然后我跑 npm install react-cookie-4.0.3.tgz 但我得到以下错误

ERR! network request to https://registry.npmjs.org/@emotion%2fcore failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

我该如何解决这个问题?

【问题讨论】:

  • 会不会是react-cookie 有一些依赖,npm 也在尝试下载?
  • 但是,您应该将包复制到项目 node_modules 文件夹(包括所有依赖项)并在根文件夹中点击 npm install。应该做的伎俩(可能重复:stackoverflow.com/questions/43064107/…
  • 您如何构建和打包您的应用程序?您不需要为已部署的应用程序执行 npm install。
  • 这能回答你的问题吗? How to install npm package while offline?

标签: node.js reactjs npm


【解决方案1】:

一种可能的解决方案是复制您需要的node_modules 文件夹,而不是从脱机的服务器安装。所以:

  1. 在连接到 Internet 的计算机(例如您的开发计算机)中安装软件包
  2. 在离线的服务器中复制node_modules目录

这样就不需要在服务器上安装包了。

如果您的服务器上缓存了某些内容,您也可以考虑使用此选项:

https://docs.npmjs.com/cli/v6/using-npm/config#offline

【讨论】:

  • 应该可以解决问题,我想也可以将包复制到服务器的 node_modules 文件夹(加上所有依赖项)并在那里运行npm install
  • 复制 node_modules 不适用于需要构建的包,尤其是在不同操作系统之间
【解决方案2】:

这可能是因为您还需要处理 react-cookie 依赖项。

在有网络的机器上试试这个:

  1. 清除 npm 缓存:npm cache clear

  2. 安装包,假设它的 x.y.z:npm install -g **package.x.y.z**

  3. 将缓存复制到一个文件夹中,我们可以随便称呼它(我假设 npm 缓存在根文件夹中,对此不太确定):cp -R /.npm/* **/cache-whatever-folder**

在没有网络的机器上:

  1. 将此 cache-whatever-folder 带到没有 Internet 的实例中,然后清理缓存并安装它(我不会说明如何复制该文件夹 :)

npm cache clear

npm install --global --cache **/cache-whatever-folder** --optional --cache-min 99999999999 --shrinkwrap false **package.x.y.z**

【讨论】:

    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 2015-12-26
    • 2017-08-21
    • 2018-05-13
    • 2021-05-30
    • 2022-01-18
    • 2016-08-23
    • 2015-12-16
    相关资源
    最近更新 更多