我觉得这是一个真正的白痴发布语法错误问题,但我真的不知道如何解决这个问题
我尝试使用以下脚本在我的节点package.json文件中设置构建过程
"scripts": {
"build": "NODE_ENV=production { echo '// mypkg-x.y.z'; browserify -r ./client/main.js:mypkg | uglifyjs -cm; } > dist/mypkg.min.js"
}
在sh
中运行以下内容NODE_ENV=production { echo '// mypkg-0.0.0'; browserify -r ./client/main.js:mypkg | uglifyjs -cm; } > dist/mypkg.min.js
sh错误输出
sh: -c: line 0: syntax error near unexpected token `}'
当我在bash
中运行命令时,它运行正常,但nodejs使用sh
:{
结束目标
我正在浏览一些javascript代码,我想在捆绑的输出前加上包的名称/版本
// mypkg-x.y.z
<bundle output here>
答案 0 :(得分:1)
设置NODE_ENV
后添加分号:
"build": "NODE_ENV=production; { echo '// mypkg-x.y.z'; browserify -r ./client/main.js:mypkg | uglifyjs -cm; } > dist/mypkg.min.js"
答案 1 :(得分:0)
@ Ray的回答很有效,我只是想为同一个问题发布一个替代解决方案
// this works too !
{ echo '// mypkg-0.0.0'; NODE_ENV=production browserify -r ./client/main.js:mypkg | uglifyjs -cm; } > dist/mypkg.min.js
为突出显示差异,我所做的只是将NODE_ENV=production
位移到browserify
位之前。在这种情况下,不需要分号。
这实际上对我的用例有点特别,因为环境变量只需要构建过程的那一部分。