问题标签 [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 投票
0 回答
30 浏览

npm - 当相关包保持不变时,为什么 package.lock 文件要求部分会更改?

这种package-lock.json变化如何可能:

前:

后:

这发生在 docker 容器内——所以平台不是问题。完整性字段匹配 - 所以WTF。所需的版本发生了变化(可能是npm audit),但作为要求的 fsevents 是的,而包没有更改。任何人都可以给我一个线索吗?

0 投票
1 回答
527 浏览

javascript - 如果我更改节点版本并执行 npm install,package-lock.json 中的包版本是否会更改?

假设,我做npm install了然后我改变了节点版本,然后又做npm install了,安装的包会不会package-lock.json改变node_modules?(假设软件包同时没有在 npm 注册表上更新)

0 投票
2 回答
2127 浏览

npm - 你如何在 package-lock.json 中增加传递依赖

我的项目取决于analytics-node哪个依赖于axios: "^0.16.2".

我们已被标记为npm audit存在axios漏洞,但已修复在0.18.1.

但是,analytics-node没有取决于0.18.1或更高版本的候选版本(只有 beta)。

我们尝试过:

  • npm audit fix,
  • npm update axios --depth 2,
  • npm install axios@0.18.1

我最困惑的部分是为什么 npm 不允许我们覆盖analytics-node版本,axios因为版本应该是兼容的。

0 投票
1 回答
338 浏览

npm - 为什么从 package-lock.json 中删除版本之前的 ^ 符号

我注意到每当我这样做时npm install --save,我的package-lock.json文件都会被修改,并且^从版本中删除了符号。

例如,

变成

我无法弄清楚为什么会这样。了解通过提供--no-package-lock标志将防止修改现有package-lock.json文件。但是有没有办法在保持最新的^同时保持package-lock.json最新状态?

更新:我安装的 npm 版本是 5.6.0。

0 投票
0 回答
172 浏览

npm - npm package-lock.json 通过检测可以合并的版本进行优化

有时 npm pacakge-lock.json 可以累积可以合并在一起的固定依赖项。

例如:

  1. 安装A@1
  2. 安装B@1要求A@^2-> 固定到A@2.1
  3. 安装A@latest->A@2.3

现在我有两个 A 版本:

  • A@2.3
  • B@1-> A@2.1(可以更新到 A@2.3 并重新使用顶级的代替)

我想要一个可以检测此合并机会以获得优化的依赖树的命令。

有这种事吗?

0 投票
1 回答
1153 浏览

javascript - 具有未闭合块的引导依赖的错误

我正在尝试在我的个人计算机上编译一个工作存储库(这样我就可以远程工作),但每次我运行时npm start都会收到以下消息:

好吧,我做了很多网站(无数次)rm -rf package-lock.json /node_modules

之后,我可以安装模块,它会生成一个新的package-lock.json

然后,当我运行时,npm start我收到以下错误:

我试图搜索很多关于它!但不幸的是,我没有任何线索。这是一个webpack的问题?还是引导?后 CSS?或者甚至没有这些?非常感谢您的关注。我非常感谢任何帮助。

编辑:一位朋友帮助我,我决定删除导致错误的类另一个错误出现:

我也删除了这个,现在它运行完美!

好吧,如果有人知道为什么会发生这种情况以及出了什么问题,我将非常感激。非常感谢。

0 投票
1 回答
3709 浏览

lerna - Lerna 没有为每个包生成 package-lock.json

以下是问题的描述:-

预期的行为是为 packages 文件夹中的每个包生成一个 package-lock.json 文件。

当前行为 我当前的项目结构如下:-

现在如上所示,只有一个 package-lock.json 文件是为 . 整个项目,它只包含顶部 package.json 文件中的依赖项。

我的期望是每个 package.json 文件都应该生成相应的 package-lock.json ,但事实并非如此。此外,顶层 package-lock.json 文件只包含顶层 package.json 中的依赖项,而不包含在每个 package.json 文件中声明的所有依赖项。

现在,如果我们尝试在另一个项目中使用例如 internal-package-1 ,因为该包没有锁定文件,所以会下载最新版本的依赖项,这不是预期的行为。

可能的解决方案 可能的解决方案或期望是为每个包生成一个锁定文件。

lerna.json

这个问题影响了我们,因为锁定文件不是为每个包生成的,如果我尝试在不同的项目中使用 internal-package-1,那么锁定的依赖项不会被下载,但它们的最新版本会被下载。

我们正在提升依赖项,因此我们修改了我们的 npm install 脚本如下:- "install": "lerna bootstrap --hoist",这正确地提升了依赖项,但不会为单个包生成锁定文件。

可执行版本

以下是我已经研究过的一些关于相同的帖子 -

  1. https://github.com/lerna/lerna/issues/1462
  2. https://github.com/lerna/lerna/issues/2105

谢谢,维谢什。

0 投票
1 回答
1010 浏览

npm - Package-lock.json 文件未在分支中正确安装 npm

[更新]:似乎可以通过package-lock.json从工作分支复制并将其粘贴到非工作分支来临时解决该问题。

这对我来说没有意义,因为不package-lock.json应该影响npm install.

尝试 npm install 时遇到一个奇怪的问题。首先,我从我的主分支开始并运行一个npm install,我的应用程序可以正常工作。然后我切换到另一个分支并git pull从我的主分支。然后我尝试运行npm install,之后当我尝试运行我的应用程序时,我收到以下错误:

我曾尝试在运行之前删除我的节点模块和包锁npm install。我还尝试了错误消息中列出的所有故障排除步骤。

我还比较了非工作分支和工作分支(两者都刚刚运行 npm install)中的包锁定文件,看起来非工作分支正在更新一些高于工作分支的依赖版本。

我发现真正有趣的是,如果我npm start在我的工作分支中运行并拉起我的应用程序然后切换分支,我可以停止并在非工作分支中启动我的应用程序(只要我不运行npm install)。

所以我的结论是npm install我的分支中正在发生一些时髦的事情,而其他地方没有发生,但我真的无法弄清楚究竟是什么导致了这个问题。

另一个额外的细节是,当我npm install在工作分支中运行时,我将有一个漏洞需要审计,而npm install在非工作分支中则不会发现漏洞。

0 投票
1 回答
2679 浏览

node.js - 是否有工具可以验证/检查 package.json 和 package-lock.json 是否一致?

有时人们改变package.json并忘记运行npm i哪个会更新package-lock.json,或者package.jsonpackage-lock.json同步。这是一个不在这里讨论/质疑的假设。我正在寻找一种有助于检测此类情况的工具。

您知道可以进行完整性检查的 npm 功能或第三方工具package-lock.json吗?例如,它应该解析所有传递依赖,并检查它们是否都在锁定文件中提及,并且版本在正确的 semver 范围内。npm i它应该告诉运行以更新您的锁定文件是否有意义,或者是否npm ci会为您提供package.json(考虑传递性)中定义的所有依赖项。

我认为这npm --loglevel verbose install --dry-run将是一个合理的候选者,但它的输出没有提到如果它package-lock.json在没有--dry-run. 当然,一种选择是运行npm i然后git diff package-lock.json(或类似),但这很脏。

0 投票
0 回答
224 浏览

node.js - 迁移到私有 NPM 注册表:如何重新安装相同版本的相同包

我已经设置了一个私有 NPM 注册表(代理),我希望从那里重新安装我的所有项目包(在 中列出package-lock.json),但似乎 NPM 一直从公共注册表安装。我尝试清除/删除package-lock.json- 我从私人仓库下载了所有软件包,但随后安装了完全不同版本的软件包(次要版本升级到最新版本)。这给我带来了麻烦,因为许多软件包不兼容(尽管较小的版本差异不应该有制动变化)。

我有一种方法可以package-lock.conf从不同的注册表中获取完全相同的版本,而无需在 package.json 中指定确切的版本?