标签: package-lock.json

“yarn install --frozen-lockfile”的 NPM 等价物是什么?

我正在使用 npm 作为构建生产 docker 映像的一部分。我想确保 package-lock.json 不会改变和匹配。

npm npm-install yarnpkg package-lock.json

15
推荐指数
1
解决办法
5600
查看次数

什么会导致 package-lock.json 中的 lockfileVersion 减一?

在 package.json 中更改补丁版本(手动编辑的文件)。注意到锁定文件有旧版本,所以我npm install更新了它。当我这样做时,lockfileVersion字段从2变为1。这看起来很奇怪。有关文档lockfileVersion

一个整数版本,从 1 开始,该文档的版本号在生成此 package-lock.json 时使用了其语义。

好吧,那没有帮助。那么版本值的变化是否值得关注?如此减少似乎是一个奇怪的变化。当我升级版本时,我不应该更新锁定文件吗?

节点 v12.16.1、NPM 6.14.10

node.js npm package-lock.json

13
推荐指数
2
解决办法
2万
查看次数

package-lock.json 中缺少“resolved”和“integrity”

有时,在安装(不相关的)依赖项时,我会丢失resolved每个私有 Nexus 存储库依赖项的值,这意味着当我的构建服务器运行时,npm ci它会回退到尝试从 npm 存储库安装这些依赖项,这显然会失败。

我在用npm 8.5.5/node 16.15

我正在使用 NPM 的工作区功能来构建 monorepo,这意味着我有几个项目package.json文件以及一个根目录package.json

我的.npmrc(在根级别)看起来像这样:

engine-strict=true
@foo:registry=http://prod-nexus.foo.com/repository/bar/
always-auth=true
Run Code Online (Sandbox Code Playgroud)

在(不相关的、随机的)安装之后,我package-lock.json将进行以下更改:

    "@foo": {
        "version": "1.2.3",
-       "resolved": "http://prod-nexus.foo.com/repository/bar/@foo/-/lib-1.2.3.tgz,
-       "integrity": "sha...",
+       "license": "MIT",
        "dependencies": { ....
Run Code Online (Sandbox Code Playgroud)

请注意,resolvedintegrity字段已消失,并且license已添加。

我已经多次遇到这个问题,每次我都通过回滚和一些手动编辑来解决它,最终它消失了,但我真的需要了解发生了什么。

造成这种情况的原因是什么,为什么它是随机的,我可以采取什么措施来防御它?

npm package.json package-lock.json

13
推荐指数
1
解决办法
3905
查看次数

在package-lock.json中解析URL有什么意义?

每当我生成程序包锁定文件时,也会出现“ resolved”块,如下所示:

"resolved": "http://devel.npm.registry:4873/lodash/-/lodash-4.17.5.tgz"
Run Code Online (Sandbox Code Playgroud)

这个网址的意义是什么?以后,如果我尝试基于此程序包锁安装依赖项,是否需要使用相同的npm注册表?因为我们将不同的npm注册表用于本地开发和生产构建。因此,当我进行开发时,我使用devel.npm.registry,但是使用CI工具production.npm.registry。根据我的测试,URL无关紧要(我尝试过npm@6.4.1)。但是当前的实现方式很快就会改变,还是有意忽略了URL?我觉得npm的某些先前版本实际上检查了解析的URL。

在这种情况下,文档没有太大帮助。

node.js npm package-lock.json

11
推荐指数
1
解决办法
2107
查看次数

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

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

git diff -- ':(exclude)package-lock.json'

git diff -- ':!package-lock.json'
Run Code Online (Sandbox Code Playgroud)

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

git package-lock.json

11
推荐指数
2
解决办法
4226
查看次数

当我在不同的系统上运行`npm install`时,为什么会得到截然不同的`package-lock.json`文件

使用相同的git存储库,如果我删除node_modules并且package-lock.json,我的期望是每次运行npm install应生成相同的package-lock.json文件(提供或采取可能由发布者在过渡期间更新的一些模块.

我发现的是,根据我是在OSX机器上还是在Linux机器上执行此操作,我会得到截然不同的文件.

这是预期的吗?如果是这样,提交package-lock.json文件的值是什么值,因为它在其中一个系统上无效.如果没有,可能会发生什么?

node.js npm package-lock.json

10
推荐指数
1
解决办法
981
查看次数

可以粘贴 19 小时前的 Package-Lock.json 来修复“ValidationError:进度插件无效选项”(Vue 3)吗?

我正在使用 Vue 3,并且 19 小时前我将项目的一个运行良好的版本推送到了 GitHub。

大约5个小时后,当我输入时出现以下问题npm run serve,导致出现以下几行信息:

> zagnetic@0.1.0 serve

> vue-cli-service serve

INFO Starting development server...

然后出现以下错误:

ValidationError: Progress Plugin Invalid Options

options should NOT have additional properties
options should NOT have additional properties
options should NOT have additional properties
options should pass "instanceof" keyword validation
options should match exactly one schema in oneOf

    at validateOptions (/Users/mgav/zagnetic_vue/zagnetic/node_modules/webpack/node_modules/schema-utils/src/validateOptions.js:32:11)
    at new ProgressPlugin (/Users/mgav/zagnetic_vue/zagnetic/node_modules/webpack/lib/ProgressPlugin.js:62:3)
    at new Progress (/Users/mgav/zagnetic_vue/zagnetic/node_modules/progress-webpack-plugin/index.js:25:21)
    at new progressPlugin (/Users/mgav/zagnetic_vue/zagnetic/node_modules/progress-webpack-plugin/index.js:127:10)
    at /Users/mgav/zagnetic_vue/zagnetic/node_modules/webpack-chain/src/Plugin.js:14:18
    at Object.toConfig (/Users/mgav/zagnetic_vue/zagnetic/node_modules/webpack-chain/src/Plugin.js:78:22)
    at …
Run Code Online (Sandbox Code Playgroud)

validationerror vue.js package-lock.json vuejs3

10
推荐指数
1
解决办法
6632
查看次数

npm install 将已解析的 URL 更改为 false

问题

\n\n

当我提取团队的代码并运行npm install其中的许多项目时package-lock.json,它们的resolved属性从 URL 更改为false. 例如

\n\n
"debug": {\n  "version": "3.2.6",\n  "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",\n  \xe2\x80\xa6\n},\n\n// changes to \n\n"debug": {\n  "version": "3.2.6",\n  "resolved": false,\n  \xe2\x80\xa6\n},\n
Run Code Online (Sandbox Code Playgroud)\n\n

询问

\n\n

我希望这种事不要发生。我不明白为什么会发生这种情况,也不明白是什么原因造成的。这似乎是一个非常奇怪和严重的错误。如果我签入并部署它会发生什么?\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f

\n\n

细节

\n\n

npm -v #=> 6.14.5

\n\n

node -v #=> v12.13.0

\n

node.js npm package.json npm-install package-lock.json

9
推荐指数
1
解决办法
6350
查看次数

为什么“npm install”在“package-lock.json”文件中为我的包添加“node_modules”前缀?

我以前从未发生过这种情况,但现在,当我npm install在应用程序的根目录中时,我package-lock.json会更新所有带有node_modules/. 是什么原因造成的?

这是我在跑步前得到的npm i

运行命令之前

这是我运行后得到的结果npm i

运行命令后

prefix npm package-lock.json

9
推荐指数
1
解决办法
2415
查看次数

如何手动确认 package-lock.json 文件中的完整性字段?

我可以运行哪些命令来手动生成(或确认)文件integrity中包含的字段package-lock.json

以下是 SHA1 的示例:

"uglify-js": {
  "version": "2.8.29",
  "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
  "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
Run Code Online (Sandbox Code Playgroud)

另一个使用 SHA512:

"uri-js": {
  "version": "4.2.2",
  "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
  "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
Run Code Online (Sandbox Code Playgroud)

我的疯狂猜测是针对 tgz 文件运行指定的哈希,然后对其进行 Base64 编码,但事实并非如此。例如:

$ sha1sum.exe uglify-js-2.8.29.tgz
29c5733148057bb4e1f75df35b7a9cb72e6a59dd *uglify-js-2.8.29.tgz

$ sha1sum.exe uglify-js-2.8.29.tgz | cut -d " " -f1
29c5733148057bb4e1f75df35b7a9cb72e6a59dd

$ sha1sum.exe uglify-js-2.8.29.tgz | cut -d " " -f1 | base64
MjljNTczMzE0ODA1N2JiNGUxZjc1ZGYzNWI3YTljYjcyZTZhNTlkZAo=
Run Code Online (Sandbox Code Playgroud)

这显然不等于:

KcVzMUgFe7Th913zW3qcty5qWd0=
Run Code Online (Sandbox Code Playgroud)

npm npm-install package-lock.json

9
推荐指数
1
解决办法
5289
查看次数