问题标签 [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.
npm - 当相关包保持不变时,为什么 package.lock 文件要求部分会更改?
这种package-lock.json
变化如何可能:
前:
后:
这发生在 docker 容器内——所以平台不是问题。完整性字段匹配 - 所以WTF。所需的版本发生了变化(可能是npm audit
),但作为要求的 fsevents 是新的,而包没有更改。任何人都可以给我一个线索吗?
javascript - 如果我更改节点版本并执行 npm install,package-lock.json 中的包版本是否会更改?
假设,我做npm install
了然后我改变了节点版本,然后又做npm install
了,安装的包会不会package-lock.json
改变node_modules
?(假设软件包同时没有在 npm 注册表上更新)
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
因为版本应该是兼容的。
npm - 为什么从 package-lock.json 中删除版本之前的 ^ 符号
我注意到每当我这样做时npm install --save
,我的package-lock.json
文件都会被修改,并且^
从版本中删除了符号。
例如,
变成
我无法弄清楚为什么会这样。了解通过提供--no-package-lock
标志将防止修改现有package-lock.json
文件。但是有没有办法在保持最新的^
同时保持package-lock.json
最新状态?
更新:我安装的 npm 版本是 5.6.0。
npm - npm package-lock.json 通过检测可以合并的版本进行优化
有时 npm pacakge-lock.json 可以累积可以合并在一起的固定依赖项。
例如:
- 安装
A@1
- 安装
B@1
要求A@^2
-> 固定到A@2.1
- 安装
A@latest
->A@2.3
现在我有两个 A 版本:
A@2.3
B@1
->A@2.1
(可以更新到 A@2.3 并重新使用顶级的代替)
我想要一个可以检测此合并机会以获得优化的依赖树的命令。
有这种事吗?
javascript - 具有未闭合块的引导依赖的错误
我正在尝试在我的个人计算机上编译一个工作存储库(这样我就可以远程工作),但每次我运行时npm start
都会收到以下消息:
好吧,我做了很多网站(无数次)rm -rf package-lock.json /node_modules
之后,我可以安装模块,它会生成一个新的package-lock.json
然后,当我运行时,npm start
我收到以下错误:
我试图搜索很多关于它!但不幸的是,我没有任何线索。这是一个webpack的问题?还是引导?后 CSS?或者甚至没有这些?非常感谢您的关注。我非常感谢任何帮助。
编辑:一位朋友帮助我,我决定删除导致错误的类另一个错误出现:
我也删除了这个,现在它运行完美!
好吧,如果有人知道为什么会发生这种情况以及出了什么问题,我将非常感激。非常感谢。
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"
,这正确地提升了依赖项,但不会为单个包生成锁定文件。
可执行版本
以下是我已经研究过的一些关于相同的帖子 -
谢谢,维谢什。
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
在非工作分支中则不会发现漏洞。
node.js - 是否有工具可以验证/检查 package.json 和 package-lock.json 是否一致?
有时人们改变package.json
并忘记运行npm i
哪个会更新package-lock.json
,或者package.json
不package-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
(或类似),但这很脏。
node.js - 迁移到私有 NPM 注册表:如何重新安装相同版本的相同包
我已经设置了一个私有 NPM 注册表(代理),我希望从那里重新安装我的所有项目包(在 中列出package-lock.json
),但似乎 NPM 一直从公共注册表安装。我尝试清除/删除package-lock.json
- 我从私人仓库下载了所有软件包,但随后安装了完全不同版本的软件包(次要版本升级到最新版本)。这给我带来了麻烦,因为许多软件包不兼容(尽管较小的版本差异不应该有制动变化)。
我有一种方法可以package-lock.conf
从不同的注册表中获取完全相同的版本,而无需在 package.json 中指定确切的版本?