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

npm - 为什么 package-lock.json 将完整性哈希从 sha1 更改为 sha512?

作为我典型工作流程的一部分,我刚刚生成了一个新的 npm 锁定文件 package-lock.json。但我注意到这次所有的完整性哈希都从 sha1 更改为 sha512。这里发生了什么?

在此处输入图像描述

0 投票
1 回答
6585 浏览

node.js - 如果我不使用 GitHub,npm 如何提交 package-lock.json

我下载了 NodeJS 并将其安装在 Windows 10 上。我使用 npm install npm@latest -g 命令行更新了 npm 我既没有使用 github 也没有使用其他任何东西我收到消息“创建了一个锁文件作为 package-lock.json。你应该提交这个文件”。

我应该怎么做才能提交文件?当我提交它时会发生什么?如果我不承诺会发生什么?

请不要引用 npm 文档,因为我多次阅读它并且没有理解它。

谢谢

0 投票
1 回答
858 浏览

node.js - NPM:更改 package-lock.json 中的注册表

出于安全原因,我需要一个特定的注册表,但package-lock.json我仍然保留https://registry.npmjs.org/

有什么办法可以强制吗?

0 投票
1 回答
1274 浏览

npm - 更新 NPM 包的传递依赖

我们公司有一些 Web 应用程序,它们又依赖于很长的内部创建和托管的 npm 包链(我们使用 JFrog Artifactory),每个包都有自己的依赖项(等等)。每当修复错误或在低级包中实现功能时,当前流程都需要开发人员检查他们的更改,等待 CICD 构建完成并运行测试,更新父包,然后冲洗/重复所有上链的方式(这可能是一个很长的过程)。

这不可能是一个独特的情况,但它极大地影响了我们的生产力,并鼓励单体包开发来限制要更新的包数量,而不是适当的代码分离。

我只能想到两个解决方案:

1) 更新 web 应用程序以直接在 package.json 中使用传递依赖。然而,这破坏了“封装”,因为 Web 应用程序不应该知道直接依赖项如何管理其工作。如果直接依赖关系稍后要使用其他传递依赖关系,则不应让 Web 应用程序引用现在不相关的包。

2) 修改 web 应用程序的 package-lock.json 以指向新版本的传递依赖。然而,这似乎只是暂时起作用,因为合并冲突或直接依赖项的新安装往往会恢复这些更改。

我意识到答案可能是优化构建/发布过程以减少痛苦和手动,但我希望其他人可能会遇到不同的解决方案。

仅供参考 - 默认情况下,所有依赖项都以 '~' 作为版本前缀安装。

0 投票
1 回答
719 浏览

node.js - 克隆后: npm install 产生不同的包锁定文件

我在 OSX El Capitan 10.11.6 上使用 npm 5.6.0 和 node v6.9.5。

场景:我有一个 nodejs 项目,其中package-lock.json在每个 npm 安装后按预期创建。该项目,包括package-lock.json,被检入存储库,然后克隆到不同的位置(相同的机器,相同的操作系统,相同的 npm 和节点版本)。

问题:但是,这次启动 npm install 时,package-lock.json的依赖顺序不同。

背景:现在这通常不会成为问题,但我需要计算 git pre-commit 挂钩上所有文件的校验和,以在应用程序中发出信号,表明从存储库克隆项目时没有更改并希望将package-lock.json 包含在该校验和中。

所以:

工作文件夹:-> npm install -> package-lock.json -> checksum -> ABCD1234 -> commit & push 克隆文件夹:clone -> npm install -> package-lock.json -> checksum -> 9876EFGH

唯一的区别(在 OS X 上使用 filemerge 工具)是package-lock.json文件中一个依赖项的顺序不同,其他每个文件都完全相同。

两个package-lock.json文件不应该完全一样吗?还是我错过了一个不能保证的特定 npm 概念?

任何帮助/提示表示赞赏,谢谢!

(通常我会将package-lock.json附加为代码,但是这个文件太长,所以我将提供实际差异的屏幕截图)

*package-lock.json* 的差异 - 只有差异

0 投票
1 回答
4731 浏览

npm - NPM5,package-lock.json 和 package.json 有什么区别?

将 NPM 更新到版本 5 后,我找到package-lock.json了带有 package.json 的文件。

这两个文件有什么区别?

有什么优点package-lock.json

0 投票
1 回答
500 浏览

node.js - 生成 package-lock.json 后的错误日志

在项目上本地安装包后..当我在命令行中babel-cli输入时,我开始收到错误日志。npm list --depth 0这很烦人..但我不确定它是否会解决任何其他问题。

我试图安装babel-clibabel-core全局。但是,并没有真正改变。当我npm list --depth 0 -g-g标志输入时,它会返回一个非常干净的我的包列表。

这是我运行这两个命令时的日志:

和:

关于如何解决这个问题的任何想法?或者至少让它不那么吵?

我真的很感谢你们的帮助!

更新

我也试过prune包,但还是一样。这是日志:

我在Windows 10上运行npm@5.6.0node@v8.9.1

另一个更新

我发现问题正是来自package-lock.json我们每次运行时生成的文件npm install something。我在安装所有软件包后删除了该文件,当我运行npm ls --depth 0它时,它变得非常干净,只有我的软件包名称。package-lock.json但据我所知,删除文件并不好。正确的?有什么我不知道的隐藏问题吗?

0 投票
2 回答
10811 浏览

npm - NPM - 如何在不更新或添加 package.json 中描述的包的情况下安装新包

这是一个很难的问题,我会尽力解释。

如何在没有安装依赖项或新包(在 package/-lock.json 中定义)的情况下添加新包?

例如:目前,我们有 package.json 和 package-lock.json 来维护版本控制。

但是,如果我们尝试添加一个新包,其他包(与 package.json 或 package-lock.json 相关)正在更新/添加。

目的只是添加新包,在 package.json 和 package-lock.json 中添加这些包信息,而不影响当前安装的包。

0 投票
1 回答
481 浏览

javascript - 以编程方式生成 package-lock.json

假设我将 package.json 文件作为字符串/json 对象读取。是否可以以编程方式创建 package-lock.json 文件?

例如,像这样:

是否存在这样的事情,还是我必须使用 npm cli 来执行此操作?

0 投票
0 回答
33 浏览

npm - 安装 Gulp 会创建大型 node_modules 和 package-lock 文件

我刚刚在一个全新的空项目中安装了 Gulp,并按照入门指南中的说明进行操作。我不确定我是否做对了,尽管在运行之后npm initnpm install --save-dev gulp有一个非常大的node_modules文件夹(198 个项目)和package-lock.json文件(2419 行)。

这是正常的还是我在某个地方出错了?