roadhog的build和start脚本分别对应了env/development和production,但实践中存在第三种开发环境(可能是预发或集成测试),配置和前两种也都不一样,但现在似乎没办法支持这种情况。
在前端开发中,很多是需要将测试环境和线上不同的。比如像facebook分享账号链接,一个测试链接,一个线上链接(第三方要求);还有线上是cdn,本地和测试环境却不是,所有要在脚手架里区别处理。
最近新入职一家公司,他们的本地和测试环境是本地资源,而线上是cdn,这样每次上线需要再将测试后的稳定版本的publicPath路劲改成cdn地址,很烦
然后我就添加了其他变量来做区分
"scripts": {
"start": "set NODE_ENV_YUANBAO=development&roadhog dev",
"build-production": "set NODE_ENV_YUANBAO=production & roadhog build",
"build-test": "set NODE_ENV_YUANBAO=test & roadhog build"
},
然后在用到区分的地方拿这个变量来区分就可以了
import pxtorem from 'postcss-pxtorem';
export default {
entry: "src/index.js",
disableCSSModules: false,
ignoreMomentLocale: true,
publicPath: process.env.NODE_ENV_YUANBAO === 'production'?"//statics.ybejia.com/weixin/":'/',
browserslist: [
"iOS >= 8", "Android >=4"
],
commons: [
{
async: true,
children: true,
minChunks: 3,
.....
.....
......