问题标签 [package-lock.json]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 如何检查一致性 npm-shrinkwrap.json 和 package.json
有时我的团队成员在更新 package.json 后忘记更新 npm-shrinkwrap.json。我从 uber 知道这个包,但它不能与 npm v3 一起使用。所以现在不是解决方案。
我有可能自动检查 npm-shrinkwrap.json 和 package.json 的一致性吗?我想在 git-hook 或/和连续中做到这一点。
npm - npm-shrinkwrap.json 和 package-lock.json 有什么区别?
随着npm@5 的发布,它现在将写入 a package-lock.json
,除非 anpm-shrinkwrap.json
已经存在。
我通过以下方式全局安装了 npm@5:
现在,如果npm-shrinkwrap.json
在以下期间找到 a:
将打印警告:
所以我的结论是我应该用package-lock.json
.
然而,为什么它有一种新的格式呢?能做什么不能package-lock.json
做什么npm-shrinkwrap.json
?
node.js - package-lock.json 也应该发布吗?
npm 5 引入package-lock.json
,其中的文档在这里。
它声明该文件旨在包含在版本控制中,因此任何克隆您的包并安装它的人都将具有相同的依赖版本。换句话说,您不应该将其添加到您的.gitignore
文件中。
它没有说明该文件是否打算包含在已发布的包中。这个问题可以改写为;应该package-lock.json
包含在.npmignore
?
npm - npm5 package-lock.json 不同机器上的不同条目
我们的项目使用 npm 进行包管理。从 npm 4 升级到 npm 5 后,我们决定选择加入新的package-lock.json
.
在提交它并npm install
在其他机器上执行之后,我们发现指定版本和已解决条目的方式存在差异:
1) package-lock.json 依赖项的示例,version
编码为URL
:
2) package-lock.json 依赖的例子version
和resolved
属性:
除了不稳定的 package-lock.json 之外,我们的构建服务器在安装第一个示例时也遇到了问题。
node.js - npm 5 忽略包锁
我正在尝试升级到 npm 5 并锁定文件。
现在我有这个 package.json:
我的 package-lock.json 的一部分(即 express.js)是:
从 package-lock.json 中,express 应该安装在 4.15.2。
但是,如果我这样做
express 安装在 4.15.3 并且 package-lock.json 被覆盖。
这是 npm 的正确行为吗?我是否以错误的方式使用包锁?
node.js - 为什么“npm install”会重写 package-lock.json?
我刚刚升级到npm@5。我现在有一个package-lock.json文件,其中包含package.json中的所有内容。我希望,当我运行时npm install
,将从锁定文件中提取依赖版本以确定应该在我的node_modules目录中安装什么。奇怪的是,它实际上最终修改和重写了我的package-lock.json文件。
例如,锁定文件的 typescript 指定为版本2.1.6。然后,在npm install
命令之后,版本更改为2.4.1。这似乎违背了锁定文件的全部目的。
我错过了什么?如何让 npm 真正尊重我的锁定文件?
npm - 我需要 package-lock.json 和 package.json 吗?
将我的 NPM 更新到最新版本(从 3.X 到 5.2.0)并npm install
在现有项目上运行后,我得到一个自动创建的package-lock.json
文件。
我可以告诉package-lock.json
我一个确切的依赖树而不是package.json
.
仅从这些信息来看,它似乎package.json
是多余的,不再需要了。
它们都是 NPM 工作所必需的吗?
仅使用该文件
是否安全或可能?package-lock.json
package-lock.json (doc1,doc2)上的文档没有提及任何相关内容。
编辑:
经过一番思考后,我得出的结论是,如果有人想将您的项目与旧版本的 NPM(5.x 之前)一起使用,它仍然会安装所有依赖项,但版本不太准确(补丁版本)
node.js - package-lock.json 中的 "requires: true" 有什么作用
我们的团队刚刚更新到 npm@5。Windows 和 Mac 之间是统一的package-lock.json
(某些依赖项是可选的,因此它们不会安装在 Windows 上,但它们会安装在 Mac 上),因此无论机器如何,我们都会生成相同的 node_modules 结构。一切顺利,然后每个团队成员都经历了以下步骤:
rm -rf node_modules
git pull
npm install
这实际上对所有团队成员来说都是完美的,除了一个package-lock.json
在npm install
. 一个修改的行是它删除了"requires": true
.
于是我看到了:
但他看到了:
有谁知道为什么requires: true
可能会从package-lock.json
某些机器上的文件中删除而不是其他机器上的文件?此外,稍微解释一下这个属性的作用也不会受到伤害。:)
提前致谢!