生成离线包指令
mkdir -p /home/yarn-offline-mirroryarn config set yarn-offline-mirror /home/yarn-offline-mirror/npm-packages-offline-cache
cd $your_web_project #web项目目录
mv ~/.yarnrc .
yarn config set yarn-offline-mirror-pruning true
rm -rf node_modules/
yarn install
ll /home/yarn-offline-mirror/npm-packages-offline-cache
end..
前言
需要在无网环境中利用jenkins去构建项目,故需要利用yarn提供的离线安装包功能 :Yarn offline,
尤其是在大型项目中,Yarn的主要优点之一是它可以从文件系统中的文件安装node_modules,将其称为“脱机镜像”,
通过互连网来获取依赖,构建系统既不可重复也不可靠,所以我门通过离线yarn tarball cache来解决这个case。
文件准备 package.json
{ "name": "yarn-offline", "version": "1.0.0", "main": "index.js", "license": "MIT", "dependencies": { "is-array": "^1.0.1", "left-pad": "^1.1.3", "mime-types": "^2.1.13" } }
然后运行yarn install时,生成的yarn.lock文件,其包含每个依赖项的部分,如:
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 is-array@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-array/-/is-array-1.0.1.tgz#e9850cc2cc860c3bc0977e84ccf0dd464584279a" left-pad@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" mime-db@~1.25.0: version "1.25.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" mime-types@^2.1.13: version "2.1.13" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" dependencies: mime-db "~1.25.0"
开始制作离线包
.yarnrc配置
cd /Users/nahongze/Documents/code/eccom/ccb-bankmkdir yarn-offline-mirrorcd yarn-offline-mirror #离线包目录yarn config set yarn-offline-mirror /Users/nahongze/Documents/code/eccom/ccb-bank/yarn-offline-mirror/npm-packages-offline-cach
#去根目录复制.yarnrc 到你当前目录 mv ~/.yarnrc .
yarn config set yarn-offline-mirror-pruning true
构建离线镜像
rm -rf node_modules/yarn isntall #查看npm-packages-offline-cache├── is-array-1.0.1.tgz└── mime-db-1.43.0.tg
离线包生效测试
关闭网络
rm -rf node_modules/ yarn install
考到准生产环境后,修改 .yarnrc 去指定他的离线依赖目录
完成项目中的离线包
参考说明 https://classic.yarnpkg.com/blog/2016/11/24/offline-mirror/
来源:https://www.cnblogs.com/nhz-M/p/12421403.html