我正在处理一个缺少package.json文件的项目。开发人员已将package-lock.json文件推入而没有package.json文件。
如果有可能,如何从package-lock.json文件创建一个干净的package.json?
答案 0 :(得分:2)
无法从package.json
生成完整的package-lock.json
,因为后者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
可以通过选中X(N,2)
键来过滤嵌套的依赖关系,但这会影响项目自身的依赖关系。
答案 1 :(得分:1)
只需运行npm init
,它将从package-lock.json
提取所有当前依赖项