如何在npm中的webpack构建之后运行bash脚本

时间:2016-11-18 19:06:01

标签: bash npm webpack

我无法在npm中链接脚本。我正在使用webpack,运行构建脚本然后想运行一个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,否则我无法再运行任何命令,这可能就是问题了吗?

谢谢!

1 个答案:

答案 0 :(得分:7)

||仅用于在前一个命令失败的情况下运行程序(返回非零状态)。

$ 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上不起作用,但&&起作用。