所以我有我的preublish脚本,它在prod中运行webpack
"scripts": {
"prepublish": [
"npm install",
"node node_modules/webpack/bin/webpack.js --env.prod"
],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
但是如何在这里运行只在调试中执行的脚本?
我想要实现的是每次项目在调试模式下构建时都不使用--env.prod运行webpack。
答案 0 :(得分: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
答案 1 :(得分:0)
优雅的解决方案是在生产环境中设置环境变量,例如:"scripts": {
"prepublish": "webpack $WEBPACK_FLAGS"
}
。然后你可以这样做:
"scripts": {
"prepublish": "webpack --env.$NODE_ENV"
}
或者您可以直接传递该值:
"scripts": {
"prepublish": "if [[ $NODE_ENV = "prod" ]]; then webpack --env.prod"; else webpack; fi"
}
你也可以像SimpleJ建议的那样做一个if语句:
webpack
我可能会弄错,但我相信webpack会始终与node node_modules/webpack/bin/webpack.js
混淆,以便您可以将webpack
替换为def get_rolling_amount(grp, freq):
return grp.rolling(freq, on='date')['amount'].sum()
df['rolling_sales_180'] = df.groupby('name', as_index=False, group_keys=False) \
.apply(get_rolling_amount, '180D')
。