Можно ли динамически настроить publicPath в vue-cli во время выполнения? - PullRequest
1 голос
/ 02 мая 2019

Возможно ли динамическое изменение publicPath для приложения vue (в vue.config)?Это означает, что я хочу, чтобы публичный путь был динамически, зависит от реального URL (некоторый домен), например, я хочу сделать только одну сборку, но использую ее для подготовки и создания env (и использую разные cdn-s для ресурсов в разных странах,так далее).Я считаю, что webpack_public_path направлен на установку общего пути во время выполнения.Но как я могу использовать webpack_public_path с vueJS (vue-cli)?

webpack_public_path - у меня не сработало.Может быть, кто-нибудь может привести реальный пример в репо?

Ожидаемый результат: если я собираю приложение один раз в «производственном» режиме, развертываю (артефакт) приложение в нескольких средах, каждая среда устанавливает свой собственный publicPath во время выполнения (cdn),Например, для артефакта prod на домене test.com в Европе - используется cdn: test-cdn-europe.com, для test.ua - используется another-test-cdn.ua и так далее.Но я хочу изменить этот publicPath в vue.config во время выполнения (возможно, основываясь на текущем домене или что-то в этом роде).Поэтому я могу сделать только одну сборку (потому что это может занять слишком много времени - сделать несколько сборок).

Можете ли вы предложить какие-либо идеи для решения этой проблемы?Спасибо!

1 Ответ

0 голосов
/ 02 мая 2019

Вы можете присвоить новое значение __webpack_public_path__, но вы должны сделать это до того, как само приложение запустится.

Поэтому лучше всего поместить это в свой собственный файл и импортировать его до самого Vue:

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

тогда в publicpath.js вы бы сделали что-то вроде этого:

__webpack_public_path__ = window.your_public_path

Конечно, вы также можете использовать window.location, чтобы получить домен или другие вещи

...