我已经了解了以下链接中的详细信息,但仍然存在何时使用哪个文件的问题?
https://docs.npmjs.com/files/package-lock.json
TL;DR如何更新 package.json 和 package-lock.json 版本号而不更新依赖项?
我们遇到一个问题,我们想在开发之后和部署之前提高版本号。
但是,如果我在 package.json 中升级版本,然后 npm install ,它可能会更改依赖项的版本,这可能会导致使用与开发人员测试其代码不同的依赖项运行的生产问题。
我们在 ci 系统中使用 npm ci,据我了解,它将构建 package-lock.json 文件。如果我们的 package-lock.json 有一个以前构建的版本,那么问题就会出现,ci 系统将只使用它之前构建的版本。我无法更新我们的 ci 系统。
我可以手动更新 package-lock.json 中的版本,但这感觉不对。对于这种情况有最佳实践吗?
我正在从 切换npm
到pnpm
,它具有一组我更喜欢的不同功能。
前者用于package-lock.json
锁定确切的软件包版本,后者用于锁定pnpm-lock.yaml
。
根据文档,pnpm
ignores package-lock.json
,这似乎变得多余。并且,因此,当使用 更新包时pnpm
,该文件根本不会被处理并且很快就会过时。
我可以安全地删除package-lock.json
还是会遇到一些问题?从我的项目中删除这个文件有什么缺点吗?
我npm
仅用于获取我的项目所需的工具和包(即 Gulp),而不是将包发布到https://www.npmjs.com/
我们的项目使用npm进行包管理.从npm 4升级到npm 5后,我们决定选择加入新版本package-lock.json
.
提交并npm install
在其他计算机上执行后,我们发现了指定版本和已解决条目的方式的差异:
1)package-lock.json依赖项的示例,version
编码为URL
:
"jspm": {
"version": "https://registry.npmjs.org/jspm/-/jspm-0.16.52.tgz",
"integrity": "sha1-axhH4I8TGsm9JnzFiXSXmudnXS4=",
"dev": true
},
"systemjs": {
"version": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.46.tgz",
"integrity": "sha1-wEV0szNfBSoOPHoA7kGIxuTB444=",
"dev": true
},
Run Code Online (Sandbox Code Playgroud)
2)package-lock.json依赖项的例子version
和resolved
属性:
"jspm": {
"version": "0.16.53",
"resolved": "https://registry.npmjs.org/jspm/-/jspm-0.16.53.tgz",
"integrity": "sha1-VvNR9JWUyJM+XgG2UUWsrr/PtZ4=",
"dev": true,
"dependencies": {
...
}
},
"systemjs": {
"version": "0.19.46",
"resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.46.tgz",
"integrity": "sha1-wEV0szNfBSoOPHoA7kGIxuTB444=",
"dev": true
},
...
Run Code Online (Sandbox Code Playgroud)
除了不稳定的package-lock.json之外,我们的构建服务器在安装第一个示例时遇到了问题.
概括:
我正在寻找有关如何在 package-lock.json 中查找和修复错误的策略。此错误中断npm install
:
细节
我想更新我的 node_modules。所以我删除了我的 node_modules 目录,然后运行npm install
. 虽然这在过去一直有效,但现在失败并出现以下错误(在 AppData\Roaming\npm-cache_logs\XXXX-debug.log 中找到):
13 silly fetchPackageMetaData error for buble@github:pemrouz/buble#fdcd2bac2c8945816b6fe3b032e49b58cc728b14 Command failed: C:\Program Files\Git\mingw64\bin\git.EXE checkout fdcd2bac2c8945816b6fe3b032e49b58cc728b14
13 silly fetchPackageMetaData fatal: reference is not a tree: fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack Error: Command failed: C:\Program Files\Git\mingw64\bin\git.EXE checkout fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack fatal: reference is not a tree: fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack
14 verbose stack at ChildProcess.exithandler (child_process.js:271:12)
14 verbose stack at emitTwo (events.js:125:13) …
Run Code Online (Sandbox Code Playgroud) 在将NPM更新到版本5之后,我找到了package-lock.json
包含package.json的文件.
这两个文件有什么区别?
有什么好处package-lock.json
?
我尝试在 Jenkins 的每个测试构建作业中使用 dependency-check-maven:
mvn org.owasp:dependency-check-maven:6.2.2:aggregate -DskipSystemScope=true -Dformat=ALL -DprettyPrint=true -DcentralAnalyzerEnabled=false -DassemblyAnalyzerEnabled=false -DyarnAuditAnalyzerEnabled=false -DbundleAuditAnalyzerEnabled=false -DversionCheckEnabled=true
Run Code Online (Sandbox Code Playgroud)
不幸的是,我对一些项目和检查文件的节点审计分析器有问题package-lock.json
。
运行 Maven 插件时,日志中出现警告:
[WARNING] An error occurred while analyzing '/var/lib/jenkins/workspace/testbuild/project/module-web/src/main/resources/dev/package-lock.json' (Node Audit Analyzer).
Run Code Online (Sandbox Code Playgroud)
这会导致最终错误:
[ERROR] Failed to execute goal org.owasp:dependency-check-maven:6.2.2:aggregate (default-cli) on project project: One or more exceptions occurred during dependency-check analysis: One or more exceptions occurred during analysis:
[ERROR] AnalysisException: Failed to read results from the NPM Audit API (NodeAuditAnalyzer); the analyzer is being disabled and may result in false negatives.
[ERROR] …
Run Code Online (Sandbox Code Playgroud) 我正在处理一个缺少 package.json 文件的项目。开发者推送了没有 package.json 文件的 package-lock.json 文件。
如何从 package-lock.json 文件创建一个干净的 package.json 以防万一?
npm ×6
package.json ×5
maven-dependency-check-plugin ×1
node-modules ×1
node.js ×1
pnpm ×1
yarnpkg ×1