node.js - 如何在没有互联网连接的系统中管理 npm 安装

标签 node.js msbuild-4.0

在没有互联网连接(适用于 Windows)的系统中为我的项目的所有客户端组件创建包时,我面临着挑战。

我已经在系统中安装了 NPM for windows。我需要管理 node_modules 并在系统中运行 gulp 命令来创建包。

由于盒子里没有互联网连接,我决定将 node_modules 从本地盒子复制到没有互联网连接的盒子。

对于复制任务,我正在使用 msbuild 脚本,但不知何故它对我不起作用。另外,我发现当我尝试将 node_modules 手册从一个文件夹复制到另一个文件夹时,我无法复制。

安装的 Node 版本:v0.12.2 NPM版本:2.7.4

任何人都可以帮我提供任何工作示例来解决上述问题。

最佳答案

我认为你的方法总体上是合理的。您可以在连接互联网的计算机上构建,没有问题!如果您愿意,可以使用 U 盘复制文件。

以下提示可能有助于解决您的问题。

  1. 如果 Box 处于离线状态,请在本地计算机上进行开发并部署到 Box
  2. 如果可能的话,也在本地计算机上执行 gulp 步骤
  3. 否则您需要运行 gulp 的本地目录安装。例如

    node node_modules\gulp\bin\gulp.js build
    

    因为您将无法npm install -g gulp

  4. 第 3 点 也适用于其他全局 npm_modules 顺便说一句

  5. 如果您面临长路径(> 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

      这将为您的包构建一个更加扁平的层次结构。需要删除并重新安装所有软件包。

  6. 第 5 点在 Windows 上是一个臭名昭著的问题,但在 Linux 上不是问题,因为路径可能非常长。 (除非您从 linux 挂载 Windows 的 Windows 目录)

就我个人而言,我会直接使用最新的 npm 版本,但如果不可能的话,您有多种方法可以解决该问题。

关于node.js - 如何在没有互联网连接的系统中管理 npm 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33658801/

相关文章:

javascript - 如何启动这个 Node.JS 应用程序?

android - 回收站 View : No adapter attached; skipping layout with android socket io

node.js - 连接到 Node “most middleware (like bodyParser) and must be installed separately by nodejs"时出错

visual-studio-2010 - 输出路径和 MSBuild

node.js - 即使输入字段已填充, postman x-www-form-urlencoded 也会为 POST 请求返回空值

node.js - MongoDB + NodeJS Web 应用程序的初始数据库结构/数据

.net - MSBuild 4.0 在 XMLQuery 任务(来自 MSBuild 社区任务包)上失败,并出现错误 MSB4018

c# - 使用 File::Exists 的条件不起作用

azure - 如何在没有 Visual Studio 的情况下在开发模式下在 azure 模拟器中运行应用程序

msbuild - 如何在 MSBuild 脚本中访问 ItemGroup Metadata 作为属性