有没有办法从package-lock.json中提取package.json?

时间:2019-01-13 10:32:06

标签: node.js npm package.json package-lock.json

我正在处理一个缺少package.json文件的项目。开发人员已将package-lock.json文件推入而没有package.json文件。

如果有可能,如何从package-lock.json文件创建一个干净的package.json?

2 个答案:

答案 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提取所有当前依赖项