[关闭]
@lxjwlt 2016-02-29T16:12:12.000000Z 字数 1250 阅读 4514

NPM离线包

博文


>>更好的阅读体验

NPM在安装的过程中会自动下载安装包的依赖文件,离线环境下由于无法下载安装包必要的依赖文件会导致安装失败。以下提供两种方式获取NPM离线包,以供离线环境安装。

npm打包功能

使用npm提供打包功能,假设package.json文件如下:

  1. {
  2. "dependencies": {
  3. "commander": "^2.8.1",
  4. "markdown": "^0.5.0"
  5. }
  6. }

我们需要新增一个字段bundledDependencies,并将依赖文件名以数组形式列出来:

  1. {
  2. "dependencies": {
  3. "commander": "^2.8.1",
  4. "markdown": "^0.5.0"
  5. },
  6. "bundledDependencies": ["commander", "markdown"]
  7. }

最后用命令行工具在根目录下执行:

  1. npm pack

目录下会生成一个后缀为.tar的压缩文件,将该文件拷贝到离线环境上解压,进入解压文件目录执行npm install进行安装。

这种方式需要将依赖文件名一个个复制粘贴一遍,操作起来很不方便。如果需要处理大量的离线安装包,推荐用以下做法。

npmbox

npmbox原名叫npmzip,用于压缩npm安装包。npmbox工具会直接在npm服务器上自动查找并下载好我们指定的安装包,并将安装包压缩成一个后缀为.npmbox的压缩文件。

首先在联网环境中全局安装npmbox工具:

  1. npm install npmbox -g

由于npmbox工具压缩的文件也需要由npmbox工具来解压,所以离线环境上也要安装npmbox。我们在联网环境上用npmbox工具对其自身的安装包进行压缩:

  1. npmbox npmbox

目录下生成一个新的文件“npmbox.npmbox”,将该文件拷贝到离线环境中,执行以下命令进行解压安装:

  1. tar --no-same-owner --no-same-permissions -xvzf npmbox.npmbox

Windows系统的命令行貌似没有tar命令,建议使用第三方的命令行工具,如Git-bash

解压后得到一个缓存文件夹,不需理会继续执行以下命令全局安装npmbox(windows环境下):

  1. npm install --global --cache .\.npmbox.cache --optional --cache-min 99999 --shrinkwrap false npmbox

如果没有报错,npmbox工具已经在离线环境中安装成功了。

接下来要获取npm离线安装包就非常简单了,比如我们想获取bootstrap离线包,只需要在联网环境下执行:

  1. npmbox bootstrap

然后将压缩文件bootstrap.npmbox拷贝到离线环境,执行以下命令进行解压:

  1. npmupbox bootstrap.npmbox

更多阅读

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注