问题标签 [npm-shrinkwrap]

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 回答
284 浏览

npm-install - 如果 npm-shrinkwrap.json 存在,所有包上的 npm 安装错误

节点 v10.15.0 npm v6.4.1

我继承了一个npm-shrinkwrap.jsonpackage.json.

当我运行时npm install,对于应该下载的每个包中的文件,我都会收到如下错误

检查 .staging 文件夹,我发现文件确实在那里!

出于好奇,我删除了npm-shrinkwrap.jsonnpm install再次运行,现在它按预期创建了 node_modules 文件夹。

我发现这shrinkwrap是一个旧方法,被lock后来 NPM 版本中的机制所取代?

是否可以保存仅删除npm-shrinkwrap.json并且以后不会遇到软件包版本的任何问题?

0 投票
1 回答
243 浏览

node.js - 在新机器上安装软件包时出现 npm 错误

我想从 ShrinkWrap.json 文件安装包,我正在尝试在新机器上安装包,但命令npm install抛出错误

npm WARN tar ENOENT:没有这样的文件或目录,打开 '/build/Source/Web/node_modules/.staging/whet.extend-0ac707ec/package.json

预期行为: 我希望正确安装软件包

到目前为止我尝试了什么: 删除了 node_modules 文件夹并删除了 package-lock.json 文件npm cache clean --force以及

详细信息 节点版本:10.17.0

注意:我只想从 shrinkwrap.json 文件安装包

0 投票
0 回答
85 浏览

node.js - 从没有 npm-shrinkwrap.json 的 bitbucket 安装 npm 包

问题:

在 NodeJS 中,当“包 B”来自私人仓库时,我如何忽略高阶“项目 A”中的“npm install”上的依赖项“包 B”的收缩包装。

的背景:

假设我们在一个私有的 npm-package “fancy-frontend” 上开发并为此获得了一个 CI 系统,这需要在 package.json 旁边保留一个 npm-shrinkwrap.json(以获得所有依赖项的确定性快照)。

在另一个 repo 中,我们使用节点项目“fancy-system”在更高的系统上进行开发。该项目依赖于“fancy-frontend”的标记版本。所以我们使用命令安装该项目

npm i git+ssh://git@bitbucket.org/myteam/fancy-frontend.git#v1.0.2 --save

由于我们的子依赖“fancy-frontend”中现有的 npm-shrinkwrap.json,npm 似乎使用了该子收缩包装并在“fancy-frontend”模块中构建了一个完整的独立包树。以这个巨大的依赖文件树结束:

注意:我添加了 react 作为两个模块应该共享的示例依赖项,但不是。

问题:

我们有大量的重复包(尽管“fancy-system”和“fancy-frontend”引用的是同一个版本!)。我们遇到了 react 和多个实例的问题(尽管我们在“fancy-frontend”中将 react 设置为对等依赖项!)。

0 投票
2 回答
5264 浏览

node.js - 反应:NPM 安装失败

我尝试使用 npm 在我的 react 应用程序中安装一个包,但由于某种原因它失败了:它显示以下错误:

我尝试 npm install 重新生成 package-lock.json 但它和以前一样。

0 投票
0 回答
323 浏览

node.js - npm 不尊重 npm-shrinkwrap 的问题

我最近负责节点 8.9.4 上的旧 Nodejs 应用程序。该应用程序有一个npm-shrinkwrap.json文件,该文件具有为其直接和间接依赖项定义的特定版本。

但是,当我执行全新的 npm 安装(使用 npm 版本 6.0.1,这是以前的开发人员在构建作业中指定的)时,它看起来npm-shrinkwrap.json被忽略了,并且package.json在依赖项中指定的任何内容(在某些情况下' latest') 是正在安装的版本。该应用程序没有package-lock.json文件。

以前有人见过这个问题吗?

0 投票
0 回答
43 浏览

node.js - 如何从现有的 package-lock.json 中提取最接近的 node.js 版本?

package-lock.jsonpackage.json没有指定用于package-lock.json在我的仓库中生成的 node.js 版本。

我可以遍历node版本,以查看哪个版本对我的存储库中的前一个文件的nvm影响最小。我想知道有没有一种不那么详尽和繁琐的方法来做到这一点。是否有任何提示可以从锁定文件中“逆向工程”或“提取”节点版本?git diffpackage-lock

动机:我不想package-lock.json在每次提交时都更改我的,并且在 CI 中始终使用相同的节点版本。

0 投票
1 回答
2345 浏览

node.js - 有没有办法将 npm-shrinkwrap 的 lockfileVersion 降低到 lockfileVersion@1,它会自动生成 lockfileversion@2?

[错误] - 执行命令 [app-deploy] - [使用 NPM 安装依赖项] 时出错。停止运行命令。错误:命令 /bin/sh -c npm --production install 失败并出现错误信号:已终止。Stderr:npm WARN read-shrinkwrap 此版本的 npm 与 lockfileVersion@1 兼容。