2017-01-13 32 views
2

所以,我有我的它運行的WebPack在督促我如何在project.json腳本只執行調試時

"scripts": { 
    "prepublish": [ 
    "npm install", 
    "node node_modules/webpack/bin/webpack.js --env.prod" 
], 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 

prepublish腳本,但我怎麼跑這裏來了一個腳本,它僅在調試執行?

我想要實現的是每次項目建立在調試模式下時,使webpack無需運行--env.prod。

回答

0

你可以寫一個shell腳本,檢查NODE_ENV帶或不帶--env.prod根據結果的WebPack運行:

"scripts": { 
    "prepublish": "./scripts/prepublish" 
} 

腳本/ prepublish:

#!/bin/bash 

npm install 
if [[ $NODE_ENV = "production" ]]; then 
    node node_modules/webpack/bin/webpack.js --env.prod 
else 
    node node_modules/webpack/bin/webpack.js 
fi 
0

優雅的解決辦法是設置生產中的環境變量,例如:WEBPACK_FLAGS=--env.prod。然後,你可以這樣做:

"scripts": { 
    "prepublish": "webpack $WEBPACK_FLAGS" 
} 

或者你可以簡單地通過直接的價值:

"scripts": { 
    "prepublish": "webpack --env.$NODE_ENV" 
} 

你也可以做的,如果像SimpleJ聲明建議:

"scripts": { 
    "prepublish": "if [[ $NODE_ENV = "prod" ]]; then webpack --env.prod"; else webpack; fi" 
} 

我可能是錯,但我相信webpack將始終以webpack作爲別名,以便您可以用webpack替換node node_modules/webpack/bin/webpack.js

相關問題