繁体   English   中英

npm从package-lock.json文件中创建一个package.json文件?

[英]npm to create a package.json file out of the package-lock.json file?

我有一个项目碰巧有一个完整的node_modules目录和一个package-lock.json文件,但是没有package.json文件。

所以我运行了npm init来创建一个新的package.json文件,但是现在我很难让它包含项目的依赖项。

有没有办法让npm读取node_modules目录或package-lock.json并创建匹配的package.json文件?

package-lock.json不包含足够的信息来生成准确的package.json文件。 它包含已安装的所有软件包的列表和版本,但它还包括列表中的子依赖项。

您可以读取信息并创建新的依赖项列表,但最终会得到所有依赖项的列表,包括您不直接依赖的子依赖项。 dependenciesdevDependencies之间也没有区别。

有趣的是,npm似乎能够记住在给定目录中安装了哪些软件包一段时间(它可能在某处缓存)。 如果锁文件最初是在您的机器上创建的,那么简单的npm init 可能会为您提供准确的package.json文件。

如果您真的想要以JSON格式生成所有包的列表,可以使用如下脚本:

var dependencies = require('./package-lock.json').dependencies;
var list = {};

for (var p of Object.keys(dependencies)) {
    list[p] = dependencies[p].version;
}
console.log(JSON.stringify(list, null, '  '));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM