使用Angular CLI 1.6.0时,ng serve使用哪台服务器?

使用Angular CLI 1.6.0时,ng serve使用哪台服务器?,angular,angular-cli,build-tools,Angular,Angular Cli,Build Tools,当使用Angular CLI 1.6.0时,此Angular CLI命令使用哪台服务器 ng serve 由于Angular CLI现在正在使用webpack进行网站绑定,这是否意味着ng serve正在使用webpack dev服务器(这是Node.js Express服务器)?以下Q/A中有一些迹象表明,ng serve可能用于搭载Ember使用的服务器: 尝试ng弹出 此命令将覆盖package.json,并在根目录中生成名为webpack.config.js的文件 这将为您提供项目正在

当使用Angular CLI 1.6.0时,此Angular CLI命令使用哪台服务器

ng serve
由于Angular CLI现在正在使用webpack进行网站绑定,这是否意味着ng serve正在使用webpack dev服务器(这是Node.js Express服务器)?以下Q/A中有一些迹象表明,ng serve可能用于搭载Ember使用的服务器:

尝试
ng弹出
此命令将覆盖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不提供撤消方法


是的,它使用的是网页包开发服务器。您可以查看
ng eject
命令的源代码:


是,angular cli使用webpack dev server。这是汉克斯·米拉德的一封信。ng serve和npm start之间有什么联系?我已经看到npm start如何通过在脚本>开始中使用“ng serve”作为值来调用ng serve,但我没有看到相反的情况(ng serve调用npm start)。这是如何工作的?
ng
是一个AngularCli命令和
npm无论
是什么npm命令,您都可以将
ng命令
放在
npm命令
中,并以这种方式调用它,当您没有全局安装AngularCli时,它最有用,因此您无法在命令行中运行
ng命令
,但是您可以使用npm命令来运行它们,因为npm将使用安装在node_模块(不是全局模块)中的angular cli。我的意思是,我不明白调用ng serve如何调用npm start,然后npm start运行webpack dev server“eject”命令已暂时禁用,因为它还不兼容新的angular.json格式。新的配置格式提供了进一步的灵活性,可以在不弹出的情况下修改工作区的配置。“现在知道怎么做了吗?'eject'命令已被禁用,将在8.0中完全删除。”。新的配置格式提供了更大的灵活性,可以在不弹出的情况下修改工作区的配置。有几个项目可以与新的配置格式结合使用,它们提供了弹出的好处,而无需维护开销。一个这样的项目是ngx build plus,在这里找到:上面的链接至少现在不起作用,但我得到了一个下面的链接,它提供了一个markdown语言的文档。这可能会有所帮助。我认为上面的链接不起作用,因为ng eject在v6.0.0中被暂时禁用。