You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Checking for configuration file "/Users/xxx/node-performance/.npmrc".
Checking for configuration file "/Users/xiaoming/.npmrc".
Found configuration file "/Users/xiaoming/.npmrc".
Checking for configuration file "/usr/local/etc/npmrc".
Checking for configuration file "/Users/xxx/node-performance/.npmrc".
Checking for configuration file "/Users/xxx/.npmrc".
Checking for configuration file "/Users/xiaoming/Documents/.npmrc".
Checking for configuration file "/Users/xiaoming/.npmrc".
Found configuration file "/Users/xiaoming/.npmrc".Checking for configuration file "/Users/.npmrc".
Checking for configuration file "/Users/xxx/node-performance/.yarnrc".
Checking for configuration file "/Users/xiaoming/.yarnrc".
Found configuration file "/Users/xiaoming/.yarnrc".
Checking for configuration file "/usr/local/etc/yarnrc".Checking for configuration file "/Users/xxx/node-performance/.yarnrc".
Checking for configuration file "/Users/xxx/.yarnrc".
Checking for configuration file "/Users/xiaoming/Documents/.yarnrc".
Checking for configuration file "/Users/xiaoming/.yarnrc".
Found configuration file "/Users/xiaoming/.yarnrc".
Checking for configuration file "/Users/.yarnrc"
背景
最近一段时间公司陆续有业务组,反馈云服务器上构建的时候,npm依赖拉取不下来,导致项目部署不成功,于是发现主要是两个问题导致(公司目前主流还是使用
yarn
1.x 版本)yarn.lock
内还使用了npm
官方源oryarn
官方源安装的包npm
包,在install
相关钩子执行的时候,会去下载一些二进制文件,而这些二进制文件往往是国外的地址所以为了彻底解决
yarn install
的时候,能够不受这些因素的影响,决定提供node
基础镜像,在镜像里面替换yarn.lock
内的链接,且添加对应的.npmrc
,保证项目不受外国网络限制,能够正常install
制作镜像
基于公司的应用场景,决定提供两类基础镜像
alpine
镜像alpine
镜像两类镜像,各提供三个版本
.npmrc
yarn
、pnpm
、npm
等包管理工具,读取配置的优先级是,命令行参数 > 配置文件参数而
yarn
、pnpm
这些后于npm
的包管理工具,默认都会读取.npmrc
文件,所以为了考虑将来可能切换包管理工具,使用.npmrc
来保存配置,而不是使用.yarnrc
yarn
读取配置文件的顺序如下所示.npmrc
.npmrc
.yarnrc
.yarnrc
如果存在多个配置文件,则会进行合并
而
.npmrc
内两类内置两类参数npm
包下载第三方文件时,允许使用指定下载地址的参数最终的
.npmrc
如下所示替换yarn.lock
使用上面的方法,对
yarn.lock
内的源地址进行替换,替换成执行的源地址,这样就能100%保证yarn.lock
内的源地址简版镜像(alpine)
当
.npmrc
与yarn.lock
替换方法准备好之后,后面就是镜像的制作了制作镜像
yinstall
内包含yarn.lock
替换逻辑完整版镜像
完整版镜像与简版镜像制作的区别,就只有时区的设置不同,其它都是一样的
总结
yarn
1.x的版本,源地址是保存在yarn.lock
内的,所以当有yarn.lock
存在时,只能去修改yarn.lock
内的源地址才有效,直接设置registry
参数是无效的,这个问题,在后续的pnpm
、npm
、yarn 2.x
中都得到了解决,只需要设置registry
就可以控制npm
包的下载地址,但是对于一些npm
包内下载第三方包,目前还是只能通过指定对应的变量来控制下载地址The text was updated successfully, but these errors were encountered: