如何在npm脚本中引用包版本?
我想在npm脚本中引用我的软件包版本,以便在应用程序中显示当前版本。 差不多如何在npm脚本中引用包版本?,npm,package.json,npm-scripts,Npm,Package.json,Npm Scripts,我想在npm脚本中引用我的软件包版本,以便在应用程序中显示当前版本。 差不多 { “名称”:“bla”, “版本”:“1.0.0”, “作者”:“布拉布拉”, “脚本”:{ “build”:“node VERSION=build/build.js” } } 有办法做到这一点吗?1)在npm脚本中引用包版本。 在npm脚本中,您可以使用变量npm\u package\u version引用版本。例如: 使用bash shell(例如Linux、macOS): { ... “版本”:“1.0.0
{
“名称”:“bla”,
“版本”:“1.0.0”,
“作者”:“布拉布拉”,
“脚本”:{
“build”:“node VERSION=build/build.js”
}
}
有办法做到这一点吗?1)在npm脚本中引用包版本。
在npm脚本
中,您可以使用变量npm\u package\u version
引用版本
。例如:
- 使用bash shell(例如Linux、macOS):
请注意{ ... “版本”:“1.0.0”, “脚本”:{ “构建”:“echo$npm\u包\u版本” } }
前缀$
- 使用Windows(例如cmd.exe、Powershell):
注意{ ... “版本”:“1.0.0”, “脚本”:{ “生成”:“echo%npm\u包\u版本%” } }
前缀和后缀%
- 跨平台 要跨平台使用一种语法,请查看包
2) 在节点脚本中引用包版本。 包版本也可以在应用程序/节点脚本(即
build.js
)中引用,如下所示:
const VERSION=process.env.npm\u包\u版本;
console.log(版本);//-->1.0.0
3) 用包版本替换.js文件中的占位符字符串。 另一种方法是在JavaScript文件中指定占位符文本字符串。假设我们有一个名为
build.js
的文件,在该文件中有一个名为VERSION
的变量,声明如下:
//build.js
常量版本=“@VERSION@”
如您所见,占位符文本字符串为@VERSION@
然后,您可以按如下方式安装并使用在中调用的包:
{
...
“版本”:“1.0.0”,
“脚本”:{
“添加版本”:“replace-s\”@version@“$npm\u package\u version build/build.js”
}
}
运行npm run add version
将在名为build.js
的文件中将@version@
的实例替换为包版本(即1.0.0
)。此解决方案将npm包版本硬编码到结果文件中
注意:addversion
脚本(以上)中的to字符串当前使用$
前缀(即$npm\u package\u version
)来访问变量,因此这将仅在bash shell上成功运行。但是,对于跨平台使用,您需要使用cross-var
,如上文第一节所述。在这种情况下,添加版本
脚本可定义如下:
{
...
“版本”:“1.0.0”,
“脚本”:{
“添加版本”:“交叉变量替换-s\”@version@\“$npm\U包\u版本构建/build.js”
}
}
很好的总结。还有许多其他npm变量可用——请参见。@Moos——要以编程方式列出特定于您的项目的所有npm\uu
环境变量,您可以使用npm run env
命令——如我的答案中所述。很高兴知道。谢谢。