1 Вопрос: Можно ли динамически настроить publicPath в vue-cli во время выполнения?

вопрос создан в Thu, May 2, 2019 12:00 AM

Можно ли динамически изменять 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 во время выполнения (возможно, основываясь на текущем домене или что-то в этом роде). Поэтому я могу сделать только одну сборку (потому что это может занять слишком много времени - сделать несколько сборок).

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

    
0
1 ответ                              1                         

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

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

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

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

__webpack_public_path__ = window.your_public_path

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

    
0
2019-05-02 15: 14: 54Z
источник размещен Вот