gpt4 book ai didi

node.js - 无法安装与互联网断开连接的 Socket.IO

转载 作者:搜寻专家 更新时间:2023-10-31 23:53:26 29 4
gpt4 key购买 nike

我需要在无法访问互联网的机器上安装 Socket.io。

我已经在另一个盒子上下载了 Node.js 和 Socket.IO,但是当我复制并尝试将它们安装到独立的机器上时,Node.js 安装正常,但 Socket.IO 坚持连接到 GitHub。

如何在没有互联网连接的情况下安装 Socket.IO?我应该离线安装所有依赖项吗?如果是这样,Socket.IO 的依赖项是什么?

最佳答案

原来npm是支持包缓存的。基本上,您在确实可以访问互联网的开发机器上创建一个缓存,在安装 nodejs 应用程序的同时将该缓存复制到您的目标上,然后从缓存中安装包。我从你的问题中假设目标机器已经安装了 nodejs 和 npm。

第 1 步。使用 npm 在您的开发机器上创建一个缓存目录

首先,创建一个缓存目录并配置 npm 以使用它。然后安装每个包。

mkdir                ../my-cache
npm config set cache ../my-cache
npm install --save async@0.9.0
npm install --save restify@2.8.3
etc.

如果您查看 my-cache 目录,您会看到每个已安装包的子目录。

第 2 步。将缓存与 Node 应用程序一起复制到目标机器

这里没有火箭科学:确保将 my-cache 目录复制到目标机器。

第 3 步。使用 npm 从缓存中安装包

配置 npm 以使用缓存目录。请注意,npm 仍会尝试从互联网上获取包文件。它会在失败后重试。我发现了一些强制 npm 使用缓存的建议,但这些选项不起作用。但我确实找到了一种方法,可以显着减少 npm 在查看缓存之前尝试获取数据所花费的时间。

npm config set cache ../my-cache
npm config set fetch-retries 1
npm config set fetch-retry-maxtimeout 1
npm config set fetch-retry-mintimeout 1
npm install async@0.9.0
npm install restify@2.8.3

请注意,您不能只键入 npm install,因为 npm 不会使用缓存。这有点痛苦。如果您想要稳健的安装,您可以编写一个小型 nodejs 应用程序来解析依赖项并调用 child_process.exec 来安装每个依赖项。


(*) 我应该提到有一个名为 npm-cache ( https://www.npmjs.com/package/npm-cache ) 的包。就我而言,npm-cache 不适合我的需要。但您可以让它为您所用。

关于node.js - 无法安装与互联网断开连接的 Socket.IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33412808/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com