У меня есть решение .NET WebAPI и пользовательский интерфейс, встроенный в Angular2 RC4 (версия веб-страницы angular-cli). Я смущен тем, как их можно развернуть в разных средах, особенно в параметрах конфигурации. Кажется, что существует некорректная связь между способом .NET и пользовательским интерфейсом, что я не совсем понимаю.Как развернуть в нескольких средах с помощью webpack с помощью msdeploy
Вот как я получил его сейчас в TeamCity. Решение WebAPI построено только один раз и сконфигурировано во время развертывания. Различные параметры конфигурации, необходимые для проекта (например, строки подключения, конечные точки и т. Д.), Хранятся в web.config. Когда я развертываю свою тестовую среду с помощью MSDeploy, я передаю аргументы setParam
в командную строку MSDeploy, которая заменяет строки подключения и конечные точки в файле web.config с этими значениями. Когда я развертываю на производство, я использую одну и ту же сборку, но передаю разные аргументы в setParam
в командной строке.
Этот подход имеет смысл для меня, потому что я знаю, что одна и та же сборка происходит из одной среды в другую, единственной отличительной особенностью которой я специально сказал ей настройки для каждой среды. Супер.
С помощью Angular2 и webpack, похоже, нужен другой подход. Когда я создаю свой проект (с ng build -prod
), он сводит к минимуму и связывает мои файлы HTML и Javascript с 3 или 4 файлами вместе с gzipped версиями этих файлов. Это отлично подходит для уменьшения размера файла и увеличения скорости моего веб-сайта, но нет возможности «вводить» параметры конфигурации в эти файлы gzip, например, с файлом setParam
от MSDeploy. Везде, где я видел, что упоминает webpack, отображается webpack.dev.config.js и webpack.prod.config.js. Но разве это не значит, что нам нужно построить другой пакет для каждой среды? И на самом деле с Angular2 бит webpack считается «черным ящиком», и в любом случае вы не можете предоставить свой собственный файл webpack.config.
Единственным обходным решением, которое я могу придумать, является использование «Репликатора содержимого файла» TeamCity на «main.1234abcd6946c6a08519.bundle.js», чтобы заменить мои параметры конфигурации значениями для этой среды, затем gzip этот файл - перезапись один из которых создан webpack.
Но это ужасно, так что я ищу любые лучшие предложения?
Вы не можете использовать gzip файл ... Я думаю, вы имеете в виду минимизацию – cgatian
Ваша конфигурация веб-пакета - это просто приложение для узлов. Передайте параметры в приложение из CLI – cgatian
@cgatian. «Gzip этот файл» Я имел в виду zip-файл в формате gzip с использованием 7zip или что-то в этом роде.Чтобы создать пакет, мне нужно запустить «ng build -prod», который, к сожалению, не принимает никаких параметров, связанных с webpack. – demoncodemonkey