Вы не должны, и я думаю, что не можете использовать ng serve
для публикации своей сборки. Файлы, созданные с помощью ng build
, можно загрузить на веб-сервер и обслуживать оттуда.
- Беги
ng build -e=prod --prod --no-sourcemap --aot
Хотя в последней версии angular-cli
по умолчанию исходные карты отсутствуют, это стоит отметить. -e=prod
позаботится о том, чтобы использовалась производственная среда, определенная в папке environments
. Последнее - это --aot
. Если в вашем проекте не происходит ничего особенного, есть большая вероятность, что вы можете предварительно скомпилировать его с помощью компилятора с опережением времени. Однако вы можете столкнуться с проблемами, и вы можете устранить их с помощью ng serve --aot
или полностью удалить --aot
.
- Затем вы можете продолжить копирование содержимого папки
dist
на свой веб-сервер. Однако стоит отметить, что вы должны убедиться, что все несуществующие файловые запросы на сервере будут перенаправляться на index.html
, а URL-адрес, указывающий на ваше приложение, находится в корне.
Это означает, что для перенаправления index.html
, например, на nginx
, вы можете поместить это в блок конфигурации вашего сервера:
location / {
try_files $uri $uri/ /index.html;
}
Это если www.example.com обслуживает index.html
, созданный в папке dist. Если по какой-то причине вы хотите обслуживать свое приложение из подпапки, например, www.example.com/subfolder, вам следует изменить тег <base>
внутри сгенерированного index.html
, чтобы он указывал на эту подпапку.
Если вы хотите протестировать производственную сборку локально, одним из вариантов является установка lite-server
.
npm install -g lite-server
Затем перейдите в консоли к path/to/project/root/dist
и запустите lite-server
. Это создаст веб-сервер, откроет ваш браузер и будет обслуживать сгенерированные index.html
Если вы используете nginx
и хотите быть крутым и обслуживать сгенерированные файлы .gz
статически, вы можете поместить это в свою конфигурацию nginx gzip:
gzip on;
gzip_static on;
person
Poul Kruijt
schedule
27.01.2017