vue.js ошибка сборки: пропустить переменные processing .env

#vue.js #kubernetes #webpack #vuejs2 #html-webpack-plugin

#vue.js #кубернетес #веб-пакет #vuejs2 #html-webpack-плагин

Вопрос:

Там есть public/index.html шаблон, который обрабатывается vue-cli-сервисом и помещается в dist/index.html.

Мы хотим динамически вводить некоторые переменные среды в dist/index.html в kubernetes (после сборки, например, мы создаем, затем развертываем папку dist в разные модули, и kubernetes вводит разные значения в index.html динамически в каждом модуле). Для этого мы используем синтаксис ${FRONTED_WHATEVER}.

Проблема в том, что сборка не работает, если синтаксис ${FRONTED_WHATEVER} представлен в index.html. Webpack, htmlwebpackplugin или что-то еще, что пытается заменить ${..} само собой так и бросает ReferenceError: FRONTEND_WHATEVER is not defined .

Я нашел документацию о введении переменных .env в файлы .html в webpack с использованием синтаксисаlt;%=..%gt;, но там ничего нет о синтаксисе $ { .. }. И, что более важно, нет ничего о том, как пропустить/избежать этой обработки. Я пытался использовать ${} , ${..} ${..} но это не работает или дает правильный результат.

Самый простой способ воспроизвести проблему: создайте новый проект vue2 webpack по умолчанию, а затем добавьте эти строки в заголовок public/index.html:

 lt;scriptgt;  window.FRONTEND_WHATEVER = "${FRONTEND_WHATEVER}"; lt;/scriptgt;  

Цель состоит в том, чтобы получить build/index.html файл с точно такими же строками.

Комментарии:

1. Попробуйте добавить VUE_ префикс для ваших переменных env, например, VUE_FRONTEND_WHATEVER а затем используйте этот синтаксис lt;%= VUE_FRONTEND_WHATEVER %gt;

2. Это VUE_APP префикс, и вопрос не в использовании переменных .env в шаблоне. Речь идет о том, как его НЕ ИСПОЛЬЗОВАТЬ, как сохранить строку ${VUE_APP_WHATEVER} нетронутой во время сборки.