Меня удивляет, как трудно людям понять эту проблему.Кричать то же самое в жирных заглавных буквах просто глупо.
Упрощено:
environment.ts = { magicKey: "default" }
environment.prod.ts = { magicKey: "46df465d4f64fd654f6fe4d64f" }
---- после сборки с "--configuration = prod" ----
В app.component:
import { environment } from "environments/environment";
console.log(environment.magicKey); // == "46df465d4f64fd654f6fe4d64f"
В server.ts:
import { environment } from "environments/environment";
ПРИМЕЧАНИЕ. Это приводит к ошибке сборки "Не удается разрешить" среды / среды "на сервере.ts».Другие потоки предлагают использовать правильный относительный путь, но теперь кажется, что мы просто получаем файл по умолчанию, то есть «fileReplacements» не соблюдается / не используется:
import { environment } from "./src/environments/environment";
console.log(environment.magicKey); // == "default"
Насколько я могу судить ... этодолжно сработать.Я также проверил, что «fileReplacements» также существует для «server» в angular.json ... но все равно.Кажется, он просто не хочет заменять файл.
Я предполагаю, что это потому, что "замена" просто не происходит для server.ts.Это «за пределами» приложения и, следовательно, причудливая логика не происходит?Или может быть, что импорт (будучи другим) переопределяет его?
Мой обходной путь, это просто импортировать все среды в server.ts и выбрать правильную на основе переменной среды (process.env), которую яустановить на каждой машине.
Если у кого-то есть идеи, то я уверен, что меня интересует не только одна.