Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

npm package config 如何使用环境变量来生成新的环境变量

$
0
0

我在编写 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)整体当做一个变量也还好, 毕竟变量名称已经挺长的, 再长一点影响也不是特别大

但这个方案不是很优雅, 所以还有没有优雅的解决方式呢


Viewing all articles
Browse latest Browse all 14821

Trending Articles