在其中一个脚本中使用package.json的version属性

时间:2017-03-13 15:50:20

标签: javascript node.js npm

我需要在其中一个脚本中使用我的package.json的version属性将版本放在JS包的名称中(我更喜欢使用该版本作为唯一标识符而不是哈希)。

我有什么:

"build-js": "browserify -t [ babelify --presets [ react es2015 ] ] js/components/App.js -o js/bundle.js"

我需要什么(我知道它没有解析,但你明白了):

"build-js": "browserify -t [ babelify --presets [ react es2015 ] ] js/components/App.js -o js/bundle."+this.version+".js"

2 个答案:

答案 0 :(得分:2)

当您运行npm脚本时,npm会将所有package.json字段设置为您可以使用的环境变量:

https://docs.npmjs.com/misc/scripts#packagejson-vars

您可以使用npm_package_version环境变量

答案 1 :(得分:1)

你可以这样做:

"build-js": "browserify -t [ babelify --presets [ react es2015 ] ] js/components/App.js -o js/bundle.$npm_package_version.js"

有关详细信息,请参阅此视频:https://egghead.io/lessons/tools-use-custom-config-settings-in-your-npm-scripts

P.S。不值得将您的软件包放在与您的源相同的目录中,通常它会进入dist/,例如dist/bundle.js。这样,如果要发布到npm,则可以忽略未构建的源目录。或者你可以删除dist/目录并重建,以及将来你需要其他资产作为构建过程的一部分。