NPM离线安装全局包

npm 简介

npm is the world’s largest software registry. Open source developers from every continent use npm to share and borrow packages, and many organizations use npm to manage private development as well.

npm 是 Node.js 的包管理工具,用于安装各种 Node.js 扩展。

我一直以为其是Node Package Manager的首字母缩写(绝大部人也是如此),然而官方给出的说明如下:

Is “npm” an acronym for “Node Package Manager”?

Contrary to popular belief, npm is not in fact an acronym for “Node Package Manager”; It is a recursive bacronymic abbreviation for “npm is not an acronym” (if the project was named “ninaa”, then it would be an acronym). The precursor to npm was actually a bash utility named “pm”, which was the shortform name of “pkgmakeinst” - a bash function that installed various things on various platforms. If npm were to ever have been considered an acronym, it would be as “node pm” or, potentially “new pm”.

离线(无互联网)安装场景

在互联网环境下使用起来非常方便(即使碰到诸如electron此类特别难下载的包也可以通过设置国内镜像来提速),在离线环境则需要通过预下载的方式进行包的安装。

下面我将通过项目级(非全局)依赖全局依赖两个场景进行介绍。

项目层级的依赖

单个项目的依赖,较为简单,只需要将node_modules目录打包到离线设备下,还原即可。若出现操作系统差异导致无法正常使用的情况,请尝试更换设备。

如果是pnpm可以将存储目录(通常是同一磁盘的.pnpm-store目录,或通过 pnpm config get store-dir查看)拷贝到离线设备,并通过以下命令进行设置:

pnpm config set store-dir /path/to/.pnpm-store

全局依赖

通过 npm i -g 来安装的即为全局包

这里借助--global-style(即将过时,最新请用--install-strategy=shallow代替)参数将包内容(包含依赖)安装到一个目录下。

以离线安装pnpm为例:

# 在互联网设备执行 pnpm 的安装
npm i pnpm --install-strategy=shallow

# 完成后能看到 node_modules 目录下新建了 pnpm 目录
# 拷贝到离线设备
npm i -g pnpm/

# 执行 pnpm -v 查看是否已经安装 

另外,理论上还可以通过拷贝 node.js 的全局目录(通过npm config get prefix 获取)到离线设备的方式进行迁移。

你可能感兴趣的:(javascript,npm,前端)