在没有互联网连接(适用于 Windows)的系统中为我的项目的所有客户端组件创建包时,我面临着挑战。
我已经在系统中安装了 NPM for windows。我需要管理 node_modules
并在系统中运行 gulp 命令来创建包。
由于盒子里没有互联网连接,我决定将 node_modules
从本地盒子复制到没有互联网连接的盒子。
对于复制任务,我正在使用 msbuild
脚本,但不知何故它对我不起作用。另外,我发现当我尝试将 node_modules
手册从一个文件夹复制到另一个文件夹时,我无法复制。
安装的 Node 版本:v0.12.2 NPM版本:2.7.4
任何人都可以帮我提供任何工作示例来解决上述问题。
最佳答案
我认为你的方法总体上是合理的。您可以在连接互联网的计算机上构建,没有问题!如果您愿意,可以使用 U 盘复制文件。
以下提示可能有助于解决您的问题。
- 如果 Box 处于离线状态,请在本地计算机上进行开发并部署到 Box
- 如果可能的话,也在本地计算机上执行 gulp 步骤
否则您需要运行 gulp 的本地目录安装。例如
node node_modules\gulp\bin\gulp.js build
因为您将无法
npm install -g gulp
第 3 点 也适用于其他全局 npm_modules 顺便说一句
如果您面临长路径(> 256 个字符)这可能会导致复制问题
- 尝试使用
npm dedupe
删除重复项 - 或者尝试复制到较短的路径,例如复制到
c:\proj
而不是c:\very\long\path\proj
或者显式安装具有长路径的依赖项
例如
npm install deepdep@1.2.4
然后从原始文件夹中删除该文件夹
rm node_modules\package\node_modules\package_with_too_many_nested_folders
或者安装最新的 npm(v3.0 或更高版本),一劳永逸地解决此问题
例如
npm install -g npm
这将为您的包构建一个更加扁平的层次结构。需要删除并重新安装所有软件包。
- 尝试使用
第 5 点在 Windows 上是一个臭名昭著的问题,但在 Linux 上不是问题,因为路径可能非常长。 (除非您从 linux 挂载 Windows 的 Windows 目录)
就我个人而言,我会直接使用最新的 npm 版本,但如果不可能的话,您有多种方法可以解决该问题。
关于node.js - 如何在没有互联网连接的系统中管理 npm 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33658801/