有没有方法在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
当前回答
要确定节点代码中的包版本,可以使用以下命令:
const version=require('./package.json').version;对于<ES6版本从“”导入{版本}/package.json';对于ES6版本const版本=process.env.npm_package_version;如果应用程序已使用npmstart启动,则所有npm*环境变量都可用。您还可以使用以下npm包:root require、pkginfo、项目版本。
其他回答
如果使用rollup,可以使用rollup插件替换插件来添加版本,而无需向客户端公开package.json。
// rollup.config.js
import pkg from './package.json';
import { terser } from "rollup-plugin-terser";
import resolve from 'rollup-plugin-node-resolve';
import commonJS from 'rollup-plugin-commonjs'
import replace from 'rollup-plugin-replace';
export default {
plugins: [
replace({
exclude: 'node_modules/**',
'MY_PACKAGE_JSON_VERSION': pkg.version, // will replace 'MY_PACKAGE_JSON_VERSION' with package.json version throughout source code
}),
]
};
然后,在源代码中,您可以在任何需要package.json版本的地方使用字符串“MY_package_json_version”。
// src/index.js
export const packageVersion = 'MY_PACKAGE_JSON_VERSION' // replaced with actual version number in rollup.config.js
使用ES6模块,您可以执行以下操作:
import {version} from './package.json';
您可以使用项目版本包。
$ npm install --save project-version
Then
const version = require('project-version');
console.log(version);
//=> '1.0.0'
它使用process.env.npm_package_version,但如果由于某种原因缺少env-var,则回退到package.json中编写的版本。
要确定节点代码中的包版本,可以使用以下命令:
const version=require('./package.json').version;对于<ES6版本从“”导入{版本}/package.json';对于ES6版本const版本=process.env.npm_package_version;如果应用程序已使用npmstart启动,则所有npm*环境变量都可用。您还可以使用以下npm包:root require、pkginfo、项目版本。
如果您想获取目标包的版本。
import { version } from 'TARGET_PACKAGE/package.json';
例子:
import { version } from 'react/package.json';