知识库

个人知识管理

用户工具

站点工具


利用yarn实现nodejs的离线开发

利用yarn实现nodejs的离线开发

前言

在不连接外网开发nodejs应用时,最麻烦的是解决node_modules依赖的问题,里面小文件数量巨大且嵌套层级过深,直接复制非常容易失败且耗时过长,而且不适合直接上传到版本控制系统。

使用yarn工具提供的离线缓存功能,可以方便的解决这个问题。

如下步骤假设已经完成node和yarn等相关工具的安装配置。

操作步骤

1. 新建工程test并初始化

yarn init

2. 创建yarn配置文件

打开命令行,进入工程文件夹内,执行如下命令指定缓存目录为 offline-packages

yarn config set yarn-offline-mirror offline-packages

3. 让离线缓存目录保持更新

yarn config set yarn-offline-mirror-pruning true

默认离线缓存目录不会自动删除,该条命令可以使得当在线依赖更新时缓存也一并更新。

4. 复制配置文件到工程内

上述命令执行完毕后,默认生成的文件.yarnrc位于用户的主目录。

windows系统位于 C:\Users\USERNAME\.yarnrc 目录下,Linux系统位于 ~/.yarnrc

内容如下

.yarnrc
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
 
yarn-offline-mirror offline-packages
yarn-offline-mirror-pruning true

我们将它移动到工程根目录内

注意是移动不是复制,如果用户主目录内还有该配置文件,yarn默认会将缓存下载到用户主目录

5. 下载依赖

我们在工程目录内进行依赖安装

yarn add hello-world

安装完成后,可以看到工程内的offline-packages下的所有依赖包。

将自动生成的node_modules文件夹删除后,整个工程可以很方便的复制到其他内网机上开发,也可以上传到版本控制系统。

6. 测试离线缓存是否下载完整

关闭网络,执行如下命令

rm -rf node_modules
yarn cache clean
yarn install --offline

安装成功则缓存下载完整。

有一些情况下,会提示下载的包不全,按照官方github的这个issuse描述的情况来看,需要删除yarn-offline-mirror-pruning true配置项, 重新执行缓存命令。

参考引用

利用yarn实现nodejs的离线开发.txt · 最后更改: 2019/09/19 03:52 由 alvis