webpack 中 output.publicPath
如何动态配置地址
例:
有一个通过 require.ensure
加载的 chunk.js
:
当其在开发环境时 output.publicPath
不需要配置也能成功调用,这是因为环境地址和资源目录在同一地址下,而output.publicPath
默认指向环境地址,所以暂且不说;
而当其需要把 chunk.js
上传到测试地址时,这就发生了变化。
由于测试地址(www.test.com)
和资源目录(static.test.com)
不在同一个路径下,chunk.js
也就抛 404 了,这就需要在上传时修改 config.js
,才能保证资源文件的成功访问。
output.publicPath = 'static.test.com'
这本没有什么,只是当需要将 chunk.js
部署到生产环境时,其环境地址(www.prod.com)
和资源目录(static.prod.com)
又发生了改变,如果保证chunk.js
能正常访问,又需要修改config.js
:
output.publicPath = 'static.prod.com'
而在实际开发时也非常操蛋,在需要部署测试时需要做对应修改,在需要部署生产时又需要做对应修改;
有没有什么方法能够动态设置或者让 output.publicPath
自动匹配 开发
、测试
、生产
这些环境,而不是去做多次修改,多次上传;
是我打开方式不对?还是有什么副本没打?求大神赐教...
PHP中文网2017-04-11 13:20:22
开发环境和生产环境的分开,用process.ene.NODE_ENV自动判断环境取publicPath
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath