1)在npm-scripts中引用包版本。
In npm-script
你可以参考version
使用变量npm_package_version
。例如:
-
使用 bash shell(例如 Linux、macOS):
{
...
"version": "1.0.0",
"scripts": {
"build": "echo $npm_package_version"
}
}
请注意$
prefix
-
使用 Windows(例如 cmd.exe、Powershell):
{
...
"version": "1.0.0",
"scripts": {
"build": "echo %npm_package_version%"
}
}
请注意%
前缀和后缀
-
跨平台
要使用一种跨平台语法,请查看该包跨变量 https://www.npmjs.com/package/cross-var
2)在节点脚本中引用包版本。
包版本也可以在您的应用程序/节点脚本中引用(即build.js
) 如下:
const VERSION = process.env.npm_package_version;
console.log(VERSION); // --> 1.0.0
3) 用包版本替换 .js 文件中的占位符字符串。
实现此目的的另一种方法是在 JavaScript 文件中指定占位符文本字符串。假设我们有一个名为build.js
在该文件中我们有一个名为的变量VERSION
声明如下:
// build.js
const VERSION = '@VERSION@'
如您所见,占位符文本字符串是@VERSION@
.
然后您可以安装并使用名为的包replace https://github.com/harthur/replace in an npm 脚本 https://docs.npmjs.com/misc/scripts如下:
{
...
"version": "1.0.0",
"scripts": {
"add-version": "replace -s \"@VERSION@\" $npm_package_version build/build.js"
}
}
Running npm run add-version
将替换的实例@VERSION@
与包版本(即1.0.0
),在名为build.js
。此解决方案会将 npm 包版本硬编码到结果文件中。
注:to中的字符串add-version
脚本(上面)当前使用$
前缀(即$npm_package_version
) 来访问该变量,因此只能在 bash shell 上成功运行。但是,对于跨平台使用,您需要使用cross-var
如第一节(上文)所述。在这种情况下add-version
脚本可以定义如下:
{
...
"version": "1.0.0",
"scripts": {
"add-version": "cross-var replace -s \"@VERSION@\" $npm_package_version build/build.js"
}
}