点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~
某年某月某日,发生了一起 npm publish 事故,项目代码被直接 publish 到 npm 官方仓库里去了。
发布 24 小时以内的包,可以通过npm unpublish
命令取消发布,参见 https://docs.npmjs.com/cli/unpublish。
本以为这样应该就没事了,结果小瞧了淘宝源每十分钟同步一次的速度,被同步到淘宝源上去了。。。
那么如何避免这种误发布的情况呢?
一、.npmignore 文件
首先想到的是通过 .npmignore
将敏感文件给排除掉,这样就算不小心 publish
了,也只会发布一些无关紧要的通用文件。
于是在脚手架的模版代码中加入了 .npmignore
文件,一开始以为 .npmignore
文件只有放在根目录下才对当前项目生效。。。结果发现就算不放在根目录,也会生效,导致脚手架发布出问题了。。。
二、package.json 中 private 字段
今天突然在 webpack
的文档中发现了这么一段(以前不记得有看到过啊。。。):
通过翻阅 package.json
的 schema
文件:
相关官方文档参见: https://docs.npmjs.com/files/package.json#license