有没有方法在nodejs应用程序中获取package.json中设置的版本?我想要这样的东西
var port = process.env.PORT || 3000
app.listen port
console.log "Express server listening on port %d in %s mode %s", app.address().port, app.settings.env, app.VERSION
有没有方法在nodejs应用程序中获取package.json中设置的版本?我想要这样的东西
var port = process.env.PORT || 3000
app.listen port
console.log "Express server listening on port %d in %s mode %s", app.address().port, app.settings.env, app.VERSION
当前回答
将package.json文件导入server.js或app.js,然后将packaage.json财产访问到服务器文件中。
var package = require('./package.json');
package变量包含package.json中的所有数据。
其他回答
选项1
最佳实践是使用npm环境变量从package.json进行版本转换。
process.env.npm_package_version
更多信息:https://docs.npmjs.com/using-npm/config.html
只有当您使用NPM命令启动服务时,这才有效。
快速信息:您可以使用process.env.npm_package_[keyname]读取pacakge.json中的任何值
选项2
使用在环境变量中设置版本https://www.npmjs.com/package/dotenv作为.env文件,并将其作为process.env.version读取
用于以下web组件的版本:
const { version } = require('../package.json')
class Widget extends HTMLElement {
constructor() {
super()
this.attachShadow({ mode: 'open' })
}
public connectedCallback(): void {
this.renderWidget()
}
public renderWidget = (): void => {
this.shadowRoot?.appendChild(this.setPageTemplate())
this.setAttribute('version', version)
}
}
我们可以通过两种方式从package.json中读取版本或其他密钥
1-使用require并导入所需的密钥,例如:
const version = require('./package.json')
2-使用文档中提到的package_vars
process.env.npm_package_version
有两种检索版本的方法:
需要package.json并获取版本:
const { version } = require('./package.json');
使用环境变量:
const version = process.env.npm_package_version;
请不要使用JSON.parse、fs.readFile和fs.readFileSync,也不要使用其他npm模块,这不是这个问题所必需的。
我使用查找同步来执行此操作:
var findup = require('findup-sync');
var packagejson = require(findup('package.json'));
console.log(packagejson.version); // => '0.0.1'