Efr*_*tan 6 javascript node.js npm
我有一个项目碰巧有一个完整的node_modules目录和一个package-lock.json文件,但没有package.json文件.
所以我跑去npm init创建一个新package.json文件,但现在我很难让它包含项目的依赖.
有没有办法让npm读取node_modules目录或者package-lock.json创建匹配package.json文件?
在package-lock.json不包含足够的信息来产生精确的package.json文件.它包含已安装的所有软件包的列表和版本,但它还包括列表中的子依赖项.
您可以读取信息并创建新的依赖项列表,但最终会得到所有依赖项的列表,包括您不直接依赖的子依赖项.dependencies和之间也没有区别devDependencies.
有趣的是,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, ' '));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1306 次 |
| 最近记录: |