当前位置: 首页 > news >正文

Angular中Webpack与ngx-build-plus 浅学

Webpack 在 Angular 中的概念

        Webpack 是一个模块打包工具,用于将多个模块和资源打包成一个或多个文件。在 Angular 项目中,Webpack 负责将 TypeScript、HTML、CSS 等文件打包成浏览器可以理解的 JavaScript 文件。Angular CLI 默认使用 Webpack 进行项目构建,但配置是隐藏的,开发者通常不需要直接接触 Webpack 配置。

总结来说

        Webpack是现代Angular应用构建系统的核心,负责:

  1. 模块打包:将应用的所有模块(TypeScript、CSS、HTML等)打包成浏览器可理解的格式

  2. 依赖管理:解析模块间的依赖关系

  3. 代码转换:通过loader系统处理TypeScript、SASS等非原生JavaScript资源

  4. 优化:执行Tree Shaking、代码分割等优化操作

  5. 开发工具:提供热模块替换(HMR)等开发功能

ngx-build-plus 的作用

        ngx-build-plus 是一个 Angular 构建工具,允许开发者在不 eject Angular CLI 配置的情况下,自定义 Webpack 配置。通过 ngx-build-plus,开发者可以扩展或修改默认的 Webpack 配置,以满足特定需求。

总的来说:ngx-build-plus是一个社区维护的库,主要解决以下问题:

  1. 扩展默认构建配置:无需eject即可自定义Webpack配置

  2. 保留Angular CLI特性:在自定义配置的同时保留CLI的便利功能

  3. 微前端支持:特别适合需要自定义构建的微前端架构

Webpack与ngx-build-plus核心功能对比

特性Angular CLI默认构建ngx-build-plus增强构建
配置访问受限完全访问
自定义Webpack配置困难容易
维护性官方维护社区维护
微前端支持有限专门优化
升级兼容性中等

配置 ngx-build-plus

安装 ngx-build-plus:

npm install ngx-build-plus --save-dev

angular.json 中配置自定义 Webpack 配置文件:

"architect": {"build": {"builder": "ngx-build-plus:browser","options": {"customWebpackConfig": {"path": "./extra-webpack.config.js"}}}
}

创建 extra-webpack.config.js 文件,用于自定义 Webpack 配置:

module.exports = {module: {rules: [{test: /\.custom$/,use: 'custom-loader'}]}
};

使用场景

  1. 自定义加载器:当项目需要使用特定的文件类型或资源时,可以通过自定义 Webpack 配置来添加相应的加载器。
  2. 优化构建:通过自定义 Webpack 配置,可以优化构建过程,例如代码分割、Tree Shaking 等。
  3. 集成第三方库:某些第三方库可能需要特定的 Webpack 配置才能正常工作,ngx-build-plus 可以帮助实现这一点。

具体使用案例

  • 第一个案例:假设需要在 Angular 项目中处理.custom 文件类型,可以通过以下步骤实现:

安装自定义加载器:

npm install custom-loader --save-dev

extra-webpack.config.js 中添加自定义加载器配置:

module.exports = {module: {rules: [{test: /\.custom$/,use: 'custom-loader'}]}
};

在组件中使用 .custom 文件:

import customFile from './example.custom';@Component({selector: 'app-root',templateUrl: './app.component.html',styleUrls: ['./app.component.css']
})
export class AppComponent {customData = customFile;
}
  •  第二个案例:那必须是在微前端MFE, ngx-build-plus特别适合Angular微前端架构,Webpack和ngx-build-plus一般会结合,特别是在Angular框架项目中,博主我会写单独为此写一篇博客,期待一下啦!!!

相关文章:

  • nodejs环境变量配置
  • Day25 异常处理
  • 力扣HOT100之二分查找:4. 寻找两个正序数组的中位数
  • pymongo配置事务环境并封装事务功能
  • (三)Linux性能优化-CPU-CPU 使用率
  • JDBC基础关键_001_认识
  • DOM(文档对象模型)深度解析
  • Git 常见操作
  • 【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
  • DiMTAIC 2024 数字医学技术及应用创新大赛-甲状腺B超静态及动态影像算法赛-参赛项目
  • GitOps 核心思想 - 当 Git 成为唯一信源
  • 【PhysUnits】17.2 配套变量结构体 Var(variable.rs)
  • 第二十九章 数组
  • [嵌入式AI从0开始到入土]18_Ascend C算子开发环境(S5赛季)
  • 【redis】线程IO模型
  • 探索数学的迷人谜题:考兰兹猜想与MATLAB演示
  • MyBatis中foreach集合用法详解
  • STM32H562----------串口通信(UART)
  • 大模型如何选型?嵌入模型如何选型?
  • (LeetCode 每日一题)386. 字典序排数(递归、深度优先搜索dfs || 递推)
  • 怎么做一张图片的网站/怎么样拓展客户资源
  • 重庆网站建设公/iis搭建网站
  • 如何建设网站/网站提交收录入口链接
  • 上海公司牌照价格最新价格/seo博客教程
  • 不良网站进入窗口/列举五种网络营销模式
  • 做网站最低级的软件/南昌seo排名