是否可以在运行时动态地在vue-cli中配置publicPath?

时间:2019-05-02 14:55:03

标签: vue.js webpack vue-cli

是否可以为vue应用程序动态更改publicPath(在vue.config中)?这意味着我想将公共路径设置为动态取决于真实的url(某些域),例如我只想制作一个建筑,但将其用于登台和制作环境(并对不同国家/地区的资产使用不同的CDN-S等)。 我发现webpack_public_path旨在在运行时设置公共路径。但是如何将webpack_public_path与vueJS(vue-cli)一起使用?

webpack_public_path-不适用于我。也许有人可以在回购中提供真实的例子?

预期结果:如果我在“生产”模式下构建了一个应用程序,则在多个环境中部署(工件)应用程序,每个环境在运行时(cdn)设置自己的publicPath。 例如。用于欧洲域test.com上的产品工件-使用的cdn:test-cdn-europe.com,用于test.ua-用于another-test-cdn.ua,依此类推。但是我想在运行时在vue.config中更改此publicPath(可能基于当前域或类似的东西)。因此,我只能进行一次构建(因为可能花费太多时间-进行多次构建)。

您能提出解决此问题的任何建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以为__webpack_public_path__分配一个新值,但是必须在应用程序本身启动之前这样做。

所以最好将其放入自己的文件中,然后在Vue本身之前将其导入:

import './publicpath'
import Vue from 'vue'

然后在publicpath.js中,您将执行以下操作:

__webpack_public_path__ = window.your_public_path

您当然也可以使用window.location获取域或其他内容