Я бьюсь головой о стену о том, как это сделать. Я разрабатывал приложение vue -cli, и, очевидно, в мире узлов мы все верим, что существует одна разработка, одна промежуточная и одна производственная среда.
Я пытался сократить как можно больше ручного труда, поэтому я не буду постоянно перемещать файлы, менять конфиги и т. д. c.
У меня всего 5 сред, но 3 среды разработки, которые мне нужны Разберитесь с этой системой, и у меня действительно нет никакого способа сделать это, поэтому мне нужны некоторые рекомендации.
- 1-е окружение разработчика, localhost: 12345 - я поместил переменные, где он отключает аутентификацию и указывает путь к URL. Если бы это называлось MyLocal для process.env.NODE_ENV, то я мог бы использовать переменные env.mylocal.
- 2-е окружение разработчика, localhost: 12345 (да, то же самое) - я поместил переменные, где вся моя аутентификация возвращается и я указываю тот же путь URL. Если бы это называлось DevLocal для process.env.NODE_ENV, то я мог бы использовать переменные env.devlocal
- 3-е окружение разработчика, dev.example.com/newAppLoc/web - я поместил переменные, в которые возвращалась бы вся моя аутентификация и я указываю новый путь URL. Если бы это называлось Разработка для process.env.NODE_ENV, то я мог бы использовать переменные env.development
4-й и 5-й были бы соответственно постановкой и производством.
Если бы у меня был Возможность создания собственной среды имен более 3-х, этого вопроса можно было бы избежать. Потому что все, что мне нужно сделать на этом этапе, это указать, какую среду использовать, и позволить запускать сценарии сборки. Затем в этот момент я могу опубликовать sh весь мой репозиторий, не беспокоясь о том, какие env-файлы отправлять, так как это уже было указано в сборке.
Но так как я могу указать только 3, мне нужна помощь в выяснении этого. Я должен беспокоиться о том, что мои файлы отправляются из-за страха, что один файл переопределит другой конфиг. Мне также нужно беспокоиться о том, чтобы мои файлы отправлялись в репозиторий, который могут быть извлечены другими, и настройки их проекта будут переопределены. На мой взгляд, вся эта схема кажется слишком ненадежной, и я довольно пессимистично настроена к этому строгому и продуманному беспорядку. Тем не менее, я хотел бы знать, какие рабочие процессы, как я вижу, имеют это в более чем 3 средах.
Кроме того, я не могу переопределить значения «разработка», «подготовка» , "производство". Существуют проверки, которые не позволяют вам сравнивать значения с чем-то другим. Это означает, что в вашем webpack.config. js или vue .config. js, если ваш process.env.NODE_ENV имеет значение MyLocal, и вы пытаетесь сравнить его с «MyLocal», оно буквально станет ложным.
Вот сценарии, которые у меня есть в моем пакете. json
"serve": "vue-cli-service serve",
"serve:mylocal": "vue-cli-service serve --mode MyLocal",
"build:mylocal": "vue-cli-service build --mode MyLocal",
"build:devlocal": vue-cli-service build --mode devlocal",
"build:dev": "vue-cli-service build --mode development",
"build:prod": "vue-cli-service build",
Итак:
const isDevBuild = process.env.NODE_ENV === "MyLocal"; // false if process.env.NODE_ENV = MyLocal
const isDevBuild = process.env.NODE_ENV === "production"; // true if process.env.NODE_ENV = production
Я думал:
- MyLocal будет таким же, как .env.local
- DevLocal будет таким же, как .env.development.local
- Разработка будет такой же, как .env.development
Но проблема в том, как вы указываете, какой использовать? Они основаны на приоритете только существующих, что затрудняет контроль.