Какой сервер использует ng serve при использовании Angular CLI 1.6.0?

Какой сервер использует эта команда Angular CLI при использовании Angular CLI 1.6.0?

ng serve

Поскольку webpack теперь используется Angular CLI для объединения веб-сайтов, означает ли это, что ng-serve использует webpack-dev-server (который является сервером Node.js Express)? В следующем вопросе/ответе есть некоторое указание на то, что ng serve, возможно, использовался для совмещения с сервером, используемым Ember:

Что происходит, когда вы запускаете ng serve?


person Chris Halcrow    schedule 07.12.2017    source источник
comment
да, angular cli использует webpack-dev-server. Вот документ заявляя так   -  person LLai    schedule 07.12.2017


Ответы (2)


Попробуйте ng eject Эта команда переопределит ваш package.json, а также создаст файл с именем webpack.config.js в корневом каталоге.

Это даст вам всю текущую конфигурацию веб-пакета, которую использует ваш проект.

Когда вы это сделаете, в вашем package.json вы найдете следующее:

"scripts": {
    "eject": "ddc eject",
    "build": "webpack",
    "start": "webpack-dev-server",
    "test": "karma start ./karma.conf.js",
    "pree2e": "webdriver-manager update --standalone false --gecko false --quiet",
    "e2e": "protractor ./protractor.conf.js"
  },

Как видите, npm start использует webpack-dev-server.

ПРИМЕЧАНИЕ. Чтобы отменить изменения, используйте git, иначе AngularCli не предоставляет возможности отмены.

person Milad    schedule 07.12.2017
comment
Спасибо Милад. Какая связь между ng serve и npm start? Я видел, как npm start может вызывать ng serve, используя «ng serve» в качестве значения в сценариях › start, но я не видел обратного (ng serve вызывает npm start). Как это работает? - person Chris Halcrow; 07.12.2017
comment
ng — это команда AngularCli, а npm whatever — это команда npm, вы можете поместить ng commands в npm command и назвать ее таким образом, это в основном полезно, когда AngularCli не установлен глобально, поэтому вы не можете запустить ng commands в своей командной строке, но вы можете запускать их с помощью команд npm, потому что npm будет использовать angular-cli, установленный в вашем node_module (не глобальный) - person Milad; 07.12.2017
comment
Спасибо, Милад, я имею в виду, что я не понимаю, как вызов ng serve вызывает npm start, который затем запускает webpack-dev-server - person Chris Halcrow; 08.12.2017
comment
Команда извлечения временно отключена, так как она еще не совместима с новым форматом angular.json. Новый формат конфигурации обеспечивает дополнительную гибкость для изменения конфигурации вашего рабочего пространства без извлечения. Есть идеи, как это сделать сейчас? - person MAESTRO_DE; 31.07.2018
comment
Команда «извлечь» отключена и будет полностью удалена в версии 8.0. Новый формат конфигурации обеспечивает повышенную гибкость для изменения конфигурации вашего рабочего пространства без извлечения. Есть несколько проектов, которые можно использовать в сочетании с новым форматом конфигурации, которые обеспечивают преимущества извлечения без накладных расходов на обслуживание. Одним из таких проектов является ngx-build-plus, который можно найти здесь: github.com/manfredsteyer/ngx-build- плюс - person averasko; 28.02.2019

Да, он использует webpack-dev-server. Вы можете посмотреть исходный код команды ng eject:

https://github.com/angular/angular-cli/blob/6449a753641340d8fc19a752e1a1ced75f974efa/docs/documentation/1-x/eject.md

person Sonu Kapoor    schedule 07.12.2017
comment
По крайней мере, ссылка выше сейчас не работает, но у меня есть следующая ссылка, которая дает документацию на языке уценки. github.com/angular/angular- кли/блоб/ . Это может помочь. И я думаю, что приведенная выше ссылка не работает, потому что ng eject временно отключен с версии 6.0.0. - person Golu; 04.07.2019