我在编写 docker 镜像的时候, 想要通过 npm version 来控制 docker 版本号
{
"author": {
"name": "author"
},
"version": "0.0.1",
"name": "name",
"config": {
"dockerimage": "$npm_package_author_name/$npm_package_name:$npm_package_version"
},
"scripts": {
"build": "docker build . -t $npm_package_config_dockerimage"
}
}
期望 $npm_package_config_dockerimage
返回解析好的字符串 author/name:0.0.1
, 实际返回的却是未解析的字符串 $npm_package_author_name/$npm_package_name:$npm_package_version
请教各位大佬这个该怎么办
以上是原提问
这是暂时我找到的相对来说比较优雅的解决方案
{
"config": {
"dockerimage": "echo $npm_package_author_name/$npm_package_name:$npm_package_version"
},
"scripts": {
"echo": "echo $(eval $npm_package_config_dockerimage)"
}
}
相对于新建一个文件来获取变量解析后的字符串来说要好点.
但是使用 eavl
来解析字符串也是挺丑的, 不过只要把 $(eval $npm_package_config_dockerimage)
整体当做一个变量也还好, 毕竟变量名称已经挺长的, 再长一点影响也不是特别大
但这个方案不是很优雅, 所以还有没有优雅的解决方式呢