search

Home  >  Q&A  >  body text

javascript - webpack output.publicPath 如何动态配置地址

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 自动匹配 开发测试生产这些环境,而不是去做多次修改,多次上传;

是我打开方式不对?还是有什么副本没打?求大神赐教...

迷茫迷茫2813 days ago921

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-11 13:20:22

    开发环境和生产环境的分开,用process.ene.NODE_ENV自动判断环境取publicPath

        publicPath: process.env.NODE_ENV === 'production'
        ? config.build.assetsPublicPath
        : config.dev.assetsPublicPath

    reply
    0
  • Cancelreply