首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我要提交npm 5创建的package-lock.json文件吗?

我要提交npm 5创建的package-lock.json文件吗?
EN

Stack Overflow用户
提问于 2017-05-27 01:03:33
回答 4查看 724.3K关注 0票数 2K

npm 5 was released today和其中一个新功能包括创建package-lock.json文件时的确定性安装。

这个文件应该保存在源代码管理中吗?

我假设它类似于yarn.lockcomposer.lock,这两者都应该保持在源代码控制中。

EN

回答 4

Stack Overflow用户

发布于 2017-06-17 05:18:32

是的,是要办理登机手续的。我想建议它有自己的唯一提交。我们发现它给我们的diffs增加了很多噪音。

票数 136
EN

Stack Overflow用户

发布于 2018-06-22 15:04:24

对于那些在做git diff时抱怨噪音的人:

代码语言:javascript
复制
git diff -- . ':(exclude)*package-lock.json' -- . ':(exclude)*yarn.lock'

我所做的就是使用一个别名:

代码语言:javascript
复制
alias gd="git diff --ignore-all-space --ignore-space-at-eol --ignore-space-change --ignore-blank-lines -- . ':(exclude)*package-lock.json' -- . ':(exclude)*yarn.lock'"

要忽略整个存储库(每个人都在使用它)的diffs中的package-lock.json,可以将以下代码添加到.gitattributes

代码语言:javascript
复制
package-lock.json binary
yarn.lock binary

这将导致差异,显示“二进制文件a/ package -lock.json和b/package-lock.json不同的包锁文件。此外,一些Git服务(特别是GitLab,但不是GitHub)也会排除这些文件(不超过10k行的变化!),当在线查看时,这样做。

票数 48
EN

Stack Overflow用户

发布于 2019-01-09 11:15:13

我使用npm来生成缩小/丑化的css/js,并生成django应用程序所服务的页面中所需的javascript。在我的应用程序中,Javascript在页面上运行以创建动画,有时执行ajax调用,在VUE框架内工作和/或使用css。如果package-lock.json对package.json中的内容有一些覆盖控制,那么这个文件可能有必要只有一个版本。根据我的经验,它要么不会影响npm install安装的内容,要么就算有影响,也不会对我所部署的应用程序产生负面影响。我不使用mongodb或其他类似的传统瘦客户端应用程序。

我从repo中删除了package-lock.json,因为npm install会生成这个文件,npm install是运行该应用程序的每台服务器上部署过程的一部分。node和npm的版本控制是在每台服务器上手动完成的,但我要注意它们是相同的。

npm install在服务器上运行时,它会更改包-lock.json,如果服务器上的存储库记录的文件有更改,则下一次部署将不允许您从原始位置提取新的更改。也就是说,您不能部署,因为拉取将覆盖对package-lock.json所做的更改。

你甚至不能用repo (重置硬源主机)上的东西覆盖本地生成的包-lock.json,因为npm会在你发出命令时抱怨,如果包-lock.json由于npm安装而没有反映node_modules中的内容,从而破坏部署。现在,如果这表明在node_modules中安装了略微不同的版本,再一次地,这从来没有给我带来问题。

如果node_modules不在您的存储库中(也不应该在其中),那么应该忽略package-lock.json。

如果我遗漏了什么,请在注释中纠正我,但是版本控制是从这个文件中获取的这一点没有任何意义。文件package.json中有版本号,我假设这个文件就是在npm install发生时用来构建包的文件,因为当我删除它时,npm install会抱怨如下:

代码语言:javascript
复制
jason@localhost:introcart_wagtail$ rm package.json
jason@localhost:introcart_wagtail$ npm install
npm WARN saveError ENOENT: no such file or directory, open '/home/jason/webapps/introcart_devtools/introcart_wagtail/package.json'

但是,当安装node_modules或应用npm来构建js/css时,如果我删除package-lock.json,就不会有任何问题。

代码语言:javascript
复制
jason@localhost:introcart_wagtail$ rm package-lock.json 
jason@localhost:introcart_wagtail$ npm run dev

> introcart@1.0.0 dev /home/jason/webapps/introcart_devtools/introcart_wagtail
> NODE_ENV=development webpack --progress --colors --watch --mode=development

 10% building 0/1 modules 1 active ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44206782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档