问题标签 [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.

0 投票
2 回答
660 浏览

node.js - 如何检查一致性 npm-shrinkwrap.json 和 package.json

有时我的团队成员在更新 package.json 后忘记更新 npm-shrinkwrap.json。我从 uber 知道这个包,但它不能与 npm v3 一起使用。所以现在不是解决方案。

我有可能自动检查 npm-shrinkwrap.json 和 package.json 的一致性吗?我想在 git-hook 或/和连续中做到这一点。

0 投票
4 回答
69358 浏览

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

0 投票
1 回答
6778 浏览

node.js - package-lock.json 也应该发布吗?

npm 5 引入package-lock.json,其中的文档在这里

它声明该文件旨在包含在版本控制中,因此任何克隆您的包并安装它的人都将具有相同的依赖版本。换句话说,您不应该将其添加到您的.gitignore文件中。

它没有说明该文件是否打算包含在已发布的包中。这个问题可以改写为;应该package-lock.json包含在.npmignore?

0 投票
2 回答
1970 浏览

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 依赖的例子versionresolved属性:

除了不稳定的 package-lock.json 之外,我们的构建服务器在安装第一个示例时也遇到了问题。

0 投票
2 回答
4442 浏览

npm - npm5 相当于 yarn 的 --pure-lockfile 标志?

我正在寻找 yarn's --pure-lockfileflag的等价物。

在 CI 中安装依赖项时,当您希望它读取您的锁定文件但不修改它时,此标志很有用。

npm v5 是否有等价物?

0 投票
1 回答
123 浏览

node.js - 为什么在 vscode 中切换分支时有时会创建一个 index.lock?

为什么 vscode 在切换分支时有时会创建 index.lock?具体来说,如果我刚刚打开的上一个分支在 package-lock.json 中有一些东西,而我只是希望它重置做了一个git reset --hard?仅供参考,我使用的是节点 8。这是一个屏幕截图:

在此处输入图像描述

0 投票
1 回答
284 浏览

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 的正确行为吗?我是否以错误的方式使用包锁?

0 投票
12 回答
323583 浏览

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 真正尊重我的锁定文件?

0 投票
5 回答
125366 浏览

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 (doc1doc2)上的文档没有提及任何相关内容。

编辑

经过一番思考后,我得出的结论是,如果有人想将您的项目与旧版本的 NPM(5.x 之前)一起使用,它仍然会安装所有依赖项,但版本不太准确(补丁版本)

0 投票
1 回答
4286 浏览

node.js - package-lock.json 中的 "requires: true" 有什么作用

我们的团队刚刚更新到 npm@5。Windows 和 Mac 之间是统一的package-lock.json(某些依赖项是可选的,因此它们不会安装在 Windows 上,但它们会安装在 Mac 上),因此无论机器如何,我们都会生成相同的 node_modules 结构。一切顺利,然后每个团队成员都经历了以下步骤:

  1. rm -rf node_modules
  2. git pull
  3. npm install

这实际上对所有团队成员来说都是完美的,除了一个package-lock.jsonnpm install. 一个修改的行是它删除了"requires": true.

于是我看到了:

但他看到了:

有谁知道为什么requires: true可能会从package-lock.json某些机器上的文件中删除而不是其他机器上的文件?此外,稍微解释一下这个属性的作用也不会受到伤害。:)

提前致谢!