在nodejs中运行时检查包版本?
我有一些package.json中的条目定义为“*”
"dependencies": { "express": "4.*", "passport": "*", "body-parser": "*", "express-error-handler": "*" },
我不想冻结这些值到当前版本。 我怎么知道我的软件包在运行时的版本? 我不介意一一检查,因为我没有很多:)
顺便说一句:我不能做npm list --depth=0
因为我不能直接访问vm(PaaS限制),只是日志。
您可以使用fs
模块读取node_modules
目录中的目录,然后在每个目录中读取package.json
。
var fs = require('fs'); var dirs = fs.readdirSync('node_modules'); var data = {}; dirs.forEach(function(dir) { try{ var file = 'node_modules/' + dir + '/package.json'; file = fs.readFileSync(file, 'utf8'); var json = JSON.parse(file); var name = json.name; var version = json.version; data[name] = version; }catch(err){} }); console.debug(data['express']); //= 4.11.2