Javascript ng build和webpack之间有什么区别

Javascript ng build和webpack之间有什么区别,javascript,angular,webpack,angular-cli,Javascript,Angular,Webpack,Angular Cli,据我所知,ng build创建应用程序的可分发打包版本。我还了解webpack用于绑定Javascript模块 我在一个测试项目上运行了ngbuild,发现它创建了一个dist文件夹,其中包含了我的Angular应用程序的打包版本。所有.js文件都已合并,但我引用的.css文件仍保持原始格式(未捆绑或缩小) 因此,使用ng build或webpack来完成这项工作有什么区别。还是免费的?我会在部署管道中同时使用这两种方法吗?这不是一个完整的答案,但值得注意: 如果未编译css文件,则可能意味着:

据我所知,
ng build
创建应用程序的可分发打包版本。我还了解
webpack
用于绑定Javascript模块

我在一个测试项目上运行了
ngbuild
,发现它创建了一个
dist
文件夹,其中包含了我的Angular应用程序的打包版本。所有
.js
文件都已合并,但我引用的
.css
文件仍保持原始格式(未捆绑或缩小)


因此,使用
ng build
webpack
来完成这项工作有什么区别。还是免费的?我会在部署管道中同时使用这两种方法吗?

这不是一个完整的答案,但值得注意:

如果未编译css文件,则可能意味着:

  • 您运行了
    ng build
    (又称
    ng build--dev
    ),它将
    默认值--extract css
    添加到
    false
  • --提取css(别名:-ec)

    将css从全局样式提取到css文件,而不是js文件

  • 您运行了
    ng build--prod
    ,但忘记在angular.cli.json中将您的样式引用为全局样式:

    “样式”:[
    “styles.css”,
    “资产/样式/测试.component.css”
    ],


  • 一旦你这样做,你会发现你的css文件内联,但是,你也会发现他们在正常格式以及。无法理解为什么..

    Webpack和ng build做的工作几乎相同,即将模块捆绑在浏览器环境中使用例如,Angular模块是一种功能,在浏览器中不支持,而ES 6模块尚未在任何浏览器中实现,这就是为什么需要捆绑。ng build仅用于角度。我们可以将任何与UI相关的应用程序(包括angular)进行网页打包。

    据我所知,ng cli现在已配置为在最新版本中使用网页包,并已用于angular.ts项目。您不需要只需要一个来处理构建过程。另一个在内部安装依赖项。我建议使用ng cli。
    “网页包”:“~2.4.0”,“网页包开发中间件”:“^1.10.2”,“网页包开发服务器”:“~2.4.5”,“网页包合并”:“^2.4.0”,
    复制和粘贴答案:不受欢迎。