您现在的位置:主页 > 讲座动态 >
 
 

packagelockjson需要写进gitignore吗

时间:2020-02-24 06:20:04

先给出回答:package-lock.json不应写进.gitignore。这点无论你是否使用lock都是一样的。具体来说:如果你使用lock机制,则应该将package-lock.json提交到repo中。比如Vue采取了该策略。如果你不使用lock机制,则应该加入.npmrc文件,内容为package-lock=false,并提交到repo中。比如ESLint采取了该策略。例外是,如果你使用yarn并且不打算使用npm,则可以把package-lock.json列入.gitignore(比如Babel);反之如果你使用npm并且不打算使用yarn,则可以把yarn.lock列入.gitignore(比如TypeScript)。如果你不按照上述方式做,请确定你清楚自己在干什么。比如jQuery为什么把package-lock.json写入.gitignore可以看其commitmessage:Build:Removepackage-lock.json,additto.gitignore·jquery/jquery@7037fac。简单说就是optional依赖包会导致不同平台上的package-lock.json发生变更。jQuery的人认为这有问题,所以暂时性ignore了它。先不管是不是有更好的方式或者其他workaround,最新的npm5.6.0其实已经解决了这个问题。(想混个jQuerycontributor的同学可以赶紧去提交PR了,成功之后可以给我发个红包当谢礼。)有一些不使用lock机制的库,已经使用了.npmrc,但也把package-lock.json列入了.gitignore,这是没有必要的。至于到底要不要lock,是另一个话题了。尽管题主也许想问的实际上就是要不要lock,不过我还是按照题面作答。如果想讨论要不要lock,建议移步已有的透过js-beautify@1.7.0的Bug来看,npm默认的lock机制是否重要?问题。
共有评论 11相关评论
发表我的评论
  • 大名:
  • 内容: