背景

想要在一个无网络的环境下通过源代码构建dist,而不是拷贝dist到目标机器上,这样很难改动部分源代码重新部署应用。

offline build

其实首先能明白一个理念就好解决了。(https://stackoverflow.com/questions/43064107/how-to-install-npm-package-while-offline)

npm install 只是检查依赖项,如果没有找到本地文件中的相关依赖,则会下载他们。

但是 node_modules 又和平台相关,所以我们只需要建立和目标平台一致的联网环境即可,拷贝 node_modules 到无网环境中的源代码里就可以了。

接着执行 npm run build, 即可正常构建,整体感觉还是非常容易的。

cp -r ./node_modules/ ~/projects/source_code
npm version; npm run build:prod

离线安装 Node

虽然可以解决依赖问题,但是Node也要全离线化安装.

以 Node v14 为例:

下载二进制包

curl -o node-v14.20.0-linux-x64.tar.gz https://nodejs.org/dist/v14.20.0/node-v14.20.0-linux-x64.tar.gz

这个下好之后传输到目标机器上

解压

tar zxf node-v14.20.0-linux-x64.tar.gz
mv node-v14.20.0-linux-x64 /opt

设置环境变量

# Nodejs
# your_version
VERSION=v14.20.0
DISTRO=linux-x64
export PATH=/opt/node-$VERSION-$DISTRO/bin:$PATH

ref: