【问题标题】:What is the difference between ng build and webpackng build 和 webpack 有什么区别
【发布时间】:2017-11-24 12:24:56
【问题描述】:

据我了解,ng-build 会为您的应用程序创建一个可分发的打包版本。我也了解到webpack 是用来捆绑 Javascript 模块的。

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

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

【问题讨论】:

  • 据我所知,ng-cli 现在已经被配置为在最新版本中使用 webpack,并且已经被用于处理 Angular .ts 项目。您将不需要只需要一个来处理构建过程。另一个在内部安装依赖项。我推荐使用 ng-cli。
  • "webpack": "~2.4.0", "webpack-dev-middleware": "^1.10.2", "webpack-dev-server": "~2.4.5", "webpack-merge": "^2.4.0", github.com/angular/angular-cli/blob/master/package.json

标签: javascript angular webpack angular-cli


【解决方案1】:

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

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

  1. 你跑了ng build(又名ng build --dev),它将default --extract-css添加到false

--extract-css(别名:-ec)

从全局样式中提取 css 到 css 文件而不是 js 文件中。

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

    "styles": [ "styles.css", "assets/styles/test.component.css" ],

一旦你这样做了,你会发现你的 css 文件是内联的,但是,你也会发现它们是正常格式的。不明白为什么会这样..

【讨论】:

    【解决方案2】:

    Webpack 和 ng-build 做几乎相同的工作,即捆绑您的模块以在浏览器环境中使用。例如,Angular 模块是一个功能,在浏览器中不支持,而 ES 6 模块还没有在任何浏览器中实现,这就是为什么需要 bundled.ng 构建仅用于 Angular。我们可以为您打包任何与 UI 相关的应用程序,包括 Angular。

    【讨论】:

    猜你喜欢
    • 2018-04-19
    • 2021-04-11
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 2018-10-18
    • 2022-07-04
    • 2015-01-11
    • 2012-09-07
    相关资源
    最近更新 更多