我正在开发一个缺少 package.json 文件的项目。开发者推送了没有 package.json 文件的 package-lock.json 文件。
如果可能的话,如何从 package-lock.json 文件创建一个干净的 package.json?
我正在开发一个缺少 package.json 文件的项目。开发者推送了没有 package.json 文件的 package-lock.json 文件。
如果可能的话,如何从 package-lock.json 文件创建一个干净的 package.json?
因为后者不包含所有必要的数据,所以不可能生成完整package.json
的。package-lock.json
它仅包含具有特定版本的依赖项列表,而没有原始 semvers。生产和开发依赖项与嵌套依赖项混合在一起。
package.json
可以生成新鲜的,然后通过这些依赖项来增强,例如:
const fs = require('fs');
const packageLock = require('./package-lock.json');
const package = require('./package.json');
package.dependencies = Object.entries(packageLock.dependencies)
.reduce((deps, [dep, { version }]) => Object.assign(deps, { [dep]: version }), {});
fs.writeFileSync('./package-new.json', JSON.stringify(package, null, 2));
嵌套的依赖可以通过检查requires
key 过滤掉,但这会影响项目自身的依赖。
只需运行,如果您已经生成npm init
,它将从中提取所有当前依赖项。如果没有,则运行以从 生成节点模块,然后运行以生成文件。package-lock.json
node_modules/
npm ci
package-lock.json
npm init
package.json