我可以链接npmconfiguration条目吗?

使用npm config部分很简单,很酷,但是我遇到了一个限制:一个configuration项不能被扩展,所以不能链接它们,甚至不能访问非configuration值saconfiguration文件。

样品:

 { "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

有什么我可以做的吗? 像这样的链接值是一个有用的function – 我很惊讶nom不这样做。 有没有理由不?

参考文献:

  • Node.js:如何为prod和staging设置不同的variables
  • 如何使用npm作为构build工具

有几种方法可以处理。

最简单的方法可能只是评估string

 { "name": "myproj", "version": "0.1.2", "config": { "target": "dist/myproj-$npm_package_version.js" }, "scripts": { "echo": "eval echo $npm_package_config_target" } } 

如果你对eval不太熟悉,那么你可以在脚本中手动连接string:

 { "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)" } }