问题标签 [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.
node.js - 为什么 `npm install` 会为同一个 `package.json` 文件生成不同的 `package-lock.json` 文件?
这是我package.json
文件的相关部分:
我在同一台 PC 上的两个不同的存储库中有这个文件。
当我同时npm install
在这些存储库中的每一个中运行时,我会package-lock.json
在每个存储库中得到一个不同的文件。
这怎么可能?
这是一个可能的线索:
package-lock.json
如果我事先删除了文件,则会npm install
中止并出现错误。
npm install
所以我的问题的答案可能与依赖于现有package-lock.json
文件的事实有关。
最初,我package-lock.json
在这些存储库中有不同的文件,因为相应的package.json
文件不同。
现在我已经将package.json
其中一个存储库中的文件更改为与另一个相同,我希望相应的package-lock.json
文件也将变得相同。
npm - 如何为现有的 Lerna mono-repo 生成每个包的 package-lock.json
我们有一个现有的Lerna mono-repo,其结构如下:
我们目前在项目中使用 Yarn,实际上只有一个顶级yarn.lock
文件,没有每个包yarn.lock
,因为我们从未使用过 Workspaces。
我们正在尝试切换到 npm,并希望package-lock.json
为 mono-repo 中的每个包生成一个文件,而不仅仅是顶层。我们应该怎么做?运行npm run lerna bootstrap --hoist
会创建一个顶级锁定文件,但不包含任何"dev": true
标签,也不包含任何本地包。我能做的最好的事情是做npm run lerna add somePackage --scope=package1
,即使somePackage
已经存在于 中package
,也会导致为 mono repo 中的每个包生成一个package-lock.json
文件,除了package1
. 此外,生成的package-lock.json
文件没有任何开发依赖项。
此外,我无法进入每个包并运行npm install
,因为npm
不了解我们在 mono-repo 中其他本地包所依赖的许多本地包。奇怪的是,即使在package-lock.json
npm 通过 生成的文件中lerna add
,这些文件也不包含对本地包的任何引用,只包含对外部包的引用。
那么:如何为package-lock.json
mono-repo 中还包含 devDependencies 的每个包生成一个文件?
npm - npm 未检测到 johnny-5 库
我尝试按照网站中的说明安装 Johnny-5 库。在运行代码时安装后我收到如下错误,请帮助。
在安装 Johnny-5 包时,我收到一条消息,例如 package-lock.json 需要提交,是否会产生任何问题?
github - npm 在 package-lock.json 中设置最新的依赖项
很抱歉我的整体愚蠢和对 npm 工作原理的理解薄弱。
我现在在 Angular 6 上做一个项目,github 说 hoek 包有漏洞。
运行npm ls hoek
我得到这个依赖树:
无论我做什么,都会npm install
重新创建这个依赖树。据我了解,这些依赖关系是自动拾取的,为了解决这个问题,这个树中的所有包都应该更新它们的依赖关系,从底部开始:首先,新版本boom
和sntp
应该开始使用新版本的 hoek,然后是新版本ofhawk
应该使用新版本的boom
and sntp
...
但据我在 github 上看到的,chain 中的一些包尚未更新。
所以,我的问题是:到目前为止,我该如何解决这个项目中的这个问题?我可以手动更改 package-lock.json 中的依赖版本(谦虚地希望较低版本的较低版本与较高版本的旧版本兼容)?
它会以某种方式解决我的问题,即 hoek 2.16.3 将从项目中消失吗?
npm - 从 npm-shrinkwrap.json 创建或派生 package-lock.json 文件
以前我们有旧版本的 npm,我使用npm-shrinkwrap.json
文件来锁定依赖项。现在我们升级到 npm 6,我想使用package-lock.json
而不是 old npm-shrinkwrap.json
。
那么我该如何创建一个package-lock.json
现在呢?
- 是否有任何工具可用于将 npm-shrinkwrap.json 转换为 package-lock.json?
- 我找到了建议
重命名
npm-shrinkwrap.json
为package-lock.json
. - 这样做可以吗?因为我不确定 for
npm shrinkwrap
和 new的基本逻辑npm install
npm - package-lock.json 正在破坏我的构建
作为我的 CI 的一部分,npm install
每次从 git repo 签出最新代码后,构建脚本都会运行。从几天前开始,由于缺少模块,我的构建开始失败,并显示错误消息:
当我仔细研究它时,我意识到从某个点npm install
开始,命令的行为开始有所不同,并且我的package-lock.json
文件以不再需要该cuint
模块的方式进行了更新。这是我在命令package-lock.json
之前和之后的一部分截图:npm install
最让我困惑的部分是,为什么在所需模块之前xxhashjs
具有相同版本的相同软件包而现在却没有,据称。这不是打破了锁定版本的全部意义吗?0.2.1
cuint
任何有关如何处理此问题的想法将不胜感激。
package.json - package.json、package-lock.json 和 yarn.lock 文件的区别?
我已经从下面的链接中了解了详细信息,但是什么时候使用哪个文件仍然是个问题?
https://docs.npmjs.com/files/package-lock.json
npm - 如何使用 package-lock.json 中的版本覆盖 package.json “最新” dist-tag?
我想在我的内部包中使用latest
分发标签。package.json
这使我能够npm install
在本地环境中始终获得他们的最新版本,而无需更新所有外部第三方。
当我修复已部署的版本时,问题就出现了:
- 出于修补程序的目的,我
package-lock.json
为应用程序的每个部署版本生成并保存。 - 但是当我
npm install
在修复程序准备期间,内部包的版本之间存在冲突,package.json
并且package-lock.json
:package-lock.json
指向已部署应用程序中使用的版本,但package.json
指向latest
分发标签,该标签本身指向更高版本。 - 由于指定的版本
package-lock.json
不适合指定的版本范围package.json
(非常具体 - 只有最新版本才适合),所以npm install
忽略package-lock.json
并安装最新版本。
我搜索了文档和互联网,但没有找到任何现有的解决方案:
- 我没有找到任何
npm install
标志可以处理package-lock.json
优先级高于分发标签的版本package.json
- 我没有找到任何可以
package.json
从.package-lock.json
package.json
package-lock.json
我的问题是否有任何解决方案(除了编写一个将实现最后一种方法的工具)?
沙箱:
https ://github.com/maxlk/npm-lock-version-should-override-latest (克隆并运行npm install
或替代)
npm - package-lock.json 包含非精确版本
它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖项更新如何。
我正在查看包含以下版本的 package-lock.json 文件:
在requires
依赖项之一的块中。
虽然主项目的子依赖项被“锁定”,因为没有版本歧义,但这些传递依赖项却没有。但是,如果树中的任何依赖项都需要解释,那么 npm 如何“能够生成相同的树,而不管中间依赖项更新如何”?