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

npm - npm install 不考虑 package-lock.json 中的注册表/解析路径

从私有注册表安装软件包非常简单:

这将添加一个条目到package-lock.json

到目前为止一切顺利,一切都符合预期。

现在的问题是,当您想使用npm install. 这将失败并出现以下错误:

因此它尝试my-package从公共 npm 注册表 ( https://registry.npmjs.org/my-package) 中获取,但由于my-package位于私有注册表中,因此当然会失败。

现在这真的打破了我对package-lock.json.. 的理解。 npm 不应该package-lock.json查看以前的包在哪里解决吗?相反,它只是假设它必须在公共注册表中。

另一个有趣的事情是,一旦您再次手动安装带有--registry标志的软件包,它就可以工作:

之后它每次都会工作,直到您升级版本my-package或切换设备..

我也尝试了npm ci命令但没有成功(同样的错误)。

那么如何从私有注册表正确安装软件包,以便可以轻松地将它们安装在任何其他设备上使用npm install

0 投票
2 回答
1224 浏览

node.js - 如何删除大括号中的 npm 模块漏洞 babel-cli@6.23.0?

我想删除 npm 审计中的漏洞,

https://snyk.io/test/npm/babel-cli/6.23.0

如何更新 chokidar 模块?

如何在不更新父模块的情况下更新依赖模块?

0 投票
1 回答
48 浏览

json - 究竟什么时候使用 package-lock.json?

我知道拥有 .lock 文件的要点是它们包含特定版本的包(而 package.json 可以指定范围),这样当您在不同的机器上安装相同的项目时,您可以保证相同版本的包。

我想知道的:

什么时候使用 package.json,什么时候使用 package-lock.json?例如,如果捆绑器找到一个 package.json 文件但没有 package-lock.json 文件,它是否使用 package.json 并创建 package-lock.json,但如果找到它就使用 package-lock.json?如果是这种情况,那么我是否更正了,如果您从不重新生成 package-lock.json,即使您运行npm install捆绑程序也不会安装 package.json 中 semver 范围允许的最新版本的软件包,而只是安装package-lock.json 的具体版本?

0 投票
1 回答
291 浏览

linux - npm install 不关心 package-lock.json

我在 jenkins 上的 npm install 安装了 package-lock.json 中未定义的软件包版本。

当我在本地(在 Windows 上)运行它时,它按预期工作,安装了 1.4.10 的 cleave.js 包。虽然,当我通过 jenkins 运行它时,它安装了一个不同的版本,1.5.3。

当我检查 jenkins 构建日志时,它看起来像是从缓存的二进制文件中安装包。

现在,我能想到的可能解决方案是我可以删除/var/lib/jenkins/.npm/node-sass/4.12.0/linux-x64-57_binding.node这个文件,它应该可以工作。但我不确定这是否会破坏其他任何东西,或者这是否是要走的路。

任何帮助表示赞赏。

0 投票
1 回答
3059 浏览

npm - 切换到 pnpm 时可以删除 package-lock.json 吗?

我正在从 切换npmpnpm,它具有我喜欢的一组不同的功能。

前者用于package-lock.json锁定确切的包版本,后者用于锁定pnpm-lock.yaml

根据文档pnpmignores package-lock.json,这似乎变得多余。因此,当用 更新软件包时pnpm,这个文件根本不会被处理,很快就会过时。

我可以安全地删除package-lock.json还是会遇到一些问题?从我的项目中删除这个文件会有什么缺点吗?

npm只是用来获取我的项目所需的工具和包(即 Gulp),而不是发布包到https://www.npmjs.com/

0 投票
2 回答
1501 浏览

npm - 检查 NPM package.json 和 package-lock.json 是否兼容

有没有办法在不运行的情况下检查package-lock.json文件是否兼容?兼容意味着指定的版本可以满足。package.jsonnpm installpackage.jsonpackage-lock.json

目前的方法

我目前正在通过运行npm install并检查是否package-lock.json像这样更改来检查这一点:

用例

我想在持续集成中添加一个测试,以确保如果开发人员修改package.json他们也会package-lock.json相应地更新。这很重要的原因是我们的持续集成使用npm ci而不是npm install. npm cionly references package-lock.json,因此如果开发人员不更新锁定文件,则持续集成设置将与他们期望的不匹配。

0 投票
3 回答
4666 浏览

npm - package-lock.json 中的 npm "resolved"-fields 会随着 JFrog 工件不断变化

我们有一个私有的 JFrog 工件(名称在下面匿名),它在项目根 .npmrc -file 中配置了 npm:

开发人员之间通过 Git 共享的 package-lock.json 文件中的已解析字段在“npm install”运行之间不断变化,而 package.json 没有任何更改。

有时 dl 查询参数(指向完全相同的 URL)被添加到解析的 URL:

有时查询参数指向 npmjs.org 注册表:

有时该字段直接指向 npmjs.org 存储库:

这些变化中的任何一个也可能朝着相反的方向发展。

这真的很烦人,因为这意味着我们不断地在 package-lock.json 中进行无意义的更改,这会导致合并冲突并经常阻止 npm ci 正确执行。npm cache clean --force 似乎没有帮助。我知道 npm install 可以自动解决 package-lock.json 合并冲突,但这对 npm ci 没有帮助(因为重点是不要在 CI 环境中运行 npm install )。而且,无论如何,看看虚拟 npm 注册表如何在内部解析包有什么好处(我怀疑这里正在发生)?

是否有某种配置选项可以防止 JFrog Artifactory 对虚拟 npm 注册表中已解析的包 URL 进行此类更改?或者它可能是 npm 中的错误?

环境:

  • npm 6.11.3
  • JFrog Artifactory 6.10.6
0 投票
1 回答
1089 浏览

git - 执行 git diff -- ':(exclude)package-lock.json' 时没有效果

我想做一个差异,但没有 package-lock.json ,它很大并且是一个生成的文件,所以对我来说没有什么有趣的。我都试过了:

但它只有零输出。我究竟做错了什么 ?我正在运行 git 2.21.0

0 投票
1 回答
3395 浏览

npm - 如何在 package-lock 和 package json 中应用更改?

package-lock.json我在和package.json文件中手动更改了我的依赖项。我现在如何将这些更改应用到我的node-modules而不更新/触及其他依赖项?

0 投票
1 回答
20 浏览

reactjs - 只是为了一劳永逸,您究竟如何更新工作存储库中的 npm 包?

抱歉,如果这是一个基本问题,我“有点”知道该怎么做,但同时不知道,并且已经在互联网上搜寻答案,但似乎没有一个解决方案有效。

具体来说,我问的是 github 何时告诉您有安全警报并且必须更新包锁定文件中的依赖项。你是如何在你的工作存储库中解决这个问题的?我试图简单地更新我的 React.js 存储库中的必要包,然后将包锁定文件推送到主分支,但无法找到一个简单的快速解决方案来执行此操作。

非常感谢您提前。