下午三点,办公室安静得能听见硬盘转动的声音。
我忽然发觉,自己已然对着“yarn login”这个指令凝视了十分钟。
不是不会敲。
是每次敲下去,都觉得自己像在给代码世界递身份证。
那种感觉,怎么说呢——有点微妙。
你也在为npm慢哭过吗?
记得刚入行那年,npm install跑完一顿饭。
后来同事神秘兮兮地塞给我一个地址:“用这个,快。”
那是第一次接触镜像。
快得像偷跑。
但没人告诉我,镜像背后,藏着一个更深的江湖。
镜像仓库这东西,像公司的茶水间。
从外在看似只是个用以放置依赖的场所,然而实际上 ,那个发布了何种版本的人是谁 ,那个对底层库进行更新操作的人是谁 ,那个在忘记登录状态下就执行push的人是谁 ,这些情况全都被了解得清清楚楚。
yarn config set registry https://your-private-registry.com
登录这件事,没那么简单
初次进行私有仓库配置时,我于.npmrc之中写下了三行配置内容,如此这般折腾耗费了两小时。
{"name": "your-project","version": "1.0.0","publishConfig": {"registry": "https://your-private-registry.com"}}
后来察觉到,yarn login 这般的命令,其背后是 credentials 在配置文件之中安身落户。
先是把那个用户名敲进去,接着将密码输进去,(实际上啥都不会显示,只是单纯地在敲),然后再之后——你就变成了这个仓库的合法居民。
registry=https://your-private-registry.com
有种拿到门禁卡的踏实感。
但也会有那种时刻:登录失败。
403 forbidden。
yarn login --registry https://your-private-registry.com
红色的字。
心跳漏一拍。
赶紧去查看一下,是不是token已经过期,是不是权限配置出现错误,是不是又一次双叒叕却还是忘了填写registry地址。
那些镜像仓库教会我的事
yarn config set //your-private-registry.com/:_authToken YOUR_TOKEN
有的时候会去想,yarn publish这种操作,跟git push这种行为,在本质层面上是一样的。
都是交出去。
将那尚未写完的组件给予传递,把历经三日修复的漏洞给予传递,把直至凌晨两点仍在修改的语句给予传递。
yarn config get registry
镜像仓库里躺着的,不只是包。
那是一回回构建遭遇失败而后再度重新来过所留存下的痕迹,是版本号从零点零一历经变化直至二点三八的迁移历程。
yarn publish
删包那天的犹豫
四、镜像仓库操作命令详解——文档里写得清清楚楚。
yarn package unpublish。
yarn publish --tag beta
但我一次都没用过。
不是不会。
是不敢。
yarn add package-name --registry https://your-private-registry.com
那个时刻你会陡然察觉到,删去一个版本,或许就表示某个共事的人明天清晨起床后,yarn install就会出现故障。
那个技术的世界呢,是这般模样,表面你好似在对代码予以操作,可实际上你却是在对人与人之间所存在的依赖关系进行操作呀。
yarn install
配置多仓库那点事儿
公司大了,环境多了,一个仓库不够用了。
yarn info package-name --registry https://your-private-registry.com
. npmrc 中,registry 被写得满满当当,scope 朝着不一样的地址指向。
有时候切项目,忘了切配置,依赖装得乱七八糟。
然后骂一句,删掉node_modules,重来。
这种事儿,谁没干过?
curl -X GET "https://your-private-registry.com/-/v1/search?text=" | jq '.objects[].package.name'
其实我们都在找那个“对的地方”
镜像仓库也好,npm官方也好。
本质上,我们只是在给代码找个落脚的地方。
yarn unpublish package-name@version --registry https://your-private-registry.com
希望它下载快点,希望它安全点,希望它别老变来变去。
开发者多简单啊——代码能跑起来,就开心。
下午五点半,阳光斜进来,照在屏幕上。
我又敲了一遍yarn login。
这次成功了。

Comments NOTHING