2016-11-18 66 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