我可以链接 npm 配置条目吗?
Can I chain npm configuration entries?
使用 npm
config
部分很简单,也很酷,但是我 运行 有一个限制:配置条目不会展开,所以不能链接它们,甚至不能访问非配置值 s.a。配置中的包版本。
样本:
{
"name": "myproj",
"version": "0.1.2",
"//": "Here, '$npm_package_version' is not expanded",
"config": {
"target": "dist/myproj-$npm_package_version.js"
},
"scripts": {
"echo": "echo $npm_package_config_target",
}
}
这给出:
dist/myproj-$npm_package_version.js
而不是:
dist/myproj-0.1.2.js
我能做些什么吗?像这样链接值是一个有用的功能 - 我很惊讶 nom
没有这样做。有理由不这样做吗?
参考文献:
- Node.js: How to setup different variables for prod and staging
- How to use npm as a build tool
有几种方法可以解决这个问题。
最简单的方法可能就是评估字符串
{
"name": "myproj",
"version": "0.1.2",
"config": {
"target": "dist/myproj-$npm_package_version.js"
},
"scripts": {
"echo": "eval echo $npm_package_config_target"
}
}
如果您对 eval 不满意,那么您可以在脚本中手动连接字符串:
{
"name": "myproj",
"version": "0.1.2",
"config": {
"target_prefix": "dist/myproj-",
"target_suffix": ".js"
},
"scripts": {
"echo": "echo $npm_package_config_target_prefix$npm_package_version$npm_package_config_target_suffix",
}
}
或者您可以不用 npms config
而是编写一个快速脚本,该脚本可以与其他脚本一起编写:
{
"name": "myproj",
"version": "0.1.2",
"scripts": {
"config:target": "echo dist/myproj-$npm_package_version.js",
"echo": "echo $(npm run config:target)"
}
}
使用 npm
config
部分很简单,也很酷,但是我 运行 有一个限制:配置条目不会展开,所以不能链接它们,甚至不能访问非配置值 s.a。配置中的包版本。
样本:
{
"name": "myproj",
"version": "0.1.2",
"//": "Here, '$npm_package_version' is not expanded",
"config": {
"target": "dist/myproj-$npm_package_version.js"
},
"scripts": {
"echo": "echo $npm_package_config_target",
}
}
这给出:
dist/myproj-$npm_package_version.js
而不是:
dist/myproj-0.1.2.js
我能做些什么吗?像这样链接值是一个有用的功能 - 我很惊讶 nom
没有这样做。有理由不这样做吗?
参考文献:
- Node.js: How to setup different variables for prod and staging
- How to use npm as a build tool
有几种方法可以解决这个问题。
最简单的方法可能就是评估字符串
{
"name": "myproj",
"version": "0.1.2",
"config": {
"target": "dist/myproj-$npm_package_version.js"
},
"scripts": {
"echo": "eval echo $npm_package_config_target"
}
}
如果您对 eval 不满意,那么您可以在脚本中手动连接字符串:
{
"name": "myproj",
"version": "0.1.2",
"config": {
"target_prefix": "dist/myproj-",
"target_suffix": ".js"
},
"scripts": {
"echo": "echo $npm_package_config_target_prefix$npm_package_version$npm_package_config_target_suffix",
}
}
或者您可以不用 npms config
而是编写一个快速脚本,该脚本可以与其他脚本一起编写:
{
"name": "myproj",
"version": "0.1.2",
"scripts": {
"config:target": "echo dist/myproj-$npm_package_version.js",
"echo": "echo $(npm run config:target)"
}
}