2016-11-18 117 views
0

我在npm中链接脚本时遇到了问题。我正在使用webpack,运行一个构建脚本,然后想运行一个bash文件。这两个命令都在工作,但如果链接它们,则不会。如何在webpack在npm中编译后运行bash脚本

在我的package.json我有这样的:

"scripts": { 
    "build-staging": "webpack --config webpack-staging.config.js -p || ./build-staging.sh" 
    }, 

如果我运行npm run build-staging它的WebPack运行构建和工作正常。但它不会运行我的build-staing.sh。如果我手动运行它运行的bash文件,所以我的问题是在webpack脚本完成后让它链接并运行。我已经看到管道||应该这样做,但没有运气。

我在做管道错了,还是bash脚本没有运行,因为webpack不会'杀死'脚本完成后?除非我使用Crtl + C,否则我无法再运行任何命令,也许这就是问题所在?

谢谢!

回答

5

||仅用于在上一个命令失败(返回非零状态)时运行程序。

$ bash -c "exit 0" || echo "This won't run" 
$ bash -c "exit 1" || echo "This will run" 
This will run 
$ 

如果你想,无论你的第二个脚本运行,你可以使用

"scripts": { 
    "build-staging": "webpack --config webpack-staging.config.js -p ; ./build-staging.sh" 
    }, 

或者,如果你只希望它的成功运行(这是更可能的),你可以使用&&代替||。请注意,您的平台可能不支持;。正如在评论中提到的,;在Windows上不起作用,但是&&可以。

+1

这应该进行编辑以反映';'在窗口上不起作用的事实。 '&&'确实。 – RyanZim

+0

是的,'''是我的问题。 '&&'解决了它。 – IamFace