如何用 Webpack 打包使用 TypeScript 编写的 Angular 应用

阅读时长 9 分钟读完

前言

随着 Web 技术的不断发展,前端开发中出现了越来越多的工具和框架,其中 Angular 是一个很受欢迎的前端开发框架。而 TypeScript 则是一种开源的 JavaScript 超集,提供了类型系统等功能,被越来越多的开发者选择使用。

本文将介绍如何通过 Webpack 打包使用 TypeScript 编写的 Angular 应用。

步骤

1. 安装依赖

首先,需要安装以下依赖:

其中,webpack 是 Webpack 的核心依赖,webpack-cli 提供了一些命令行工具,webpack-dev-server 可以启动一个本地开发服务器,html-webpack-plugin 可以为打包后的文件生成一个 HTML,并自动引入打包后的文件,clean-webpack-plugin 可以清除打包文件夹中的文件,copy-webpack-plugin 可以复制一些文件到打包目录,ts-loader 可以让 Webpack 处理 TypeScript 文件,css-loader 可以让 Webpack 处理 CSS 文件,file-loader 可以让 Webpack 处理文件资源,html-loader 可以让 Webpack 处理 HTML 文件,mini-css-extract-plugin 可以把 CSS 提取成独立的文件。

另外,@angularrxjs 是 Angular 的依赖,typescript 是 TypeScript 的依赖。

2. 配置 TypeScript

在项目根目录下,创建一个 tsconfig.json 文件,用于配置 TypeScript:

-- -------------------- ---- -------
-
  ------------------ -
    --------- ---------
    --------- ---------
    ------------------ -----
    ------------ -----
    -------------- -----
    --------- -----------------
    --------- -----
    -------------------- -----
    ---------------- -----
    ------------------- -------
    ------------------------- -----
    ------------------------ -----
    --------------- -----
    ----------------------------------- ----
  --
  ---------- -
    --------------
  -
-

其中,target 指定编译成的 JavaScript 版本,module 指定编译后的模块格式,这里使用了 ES2015,outDir 指定编译后的输出目录,这里指定为 ./dist/out-tsc

3. 配置 Webpack

在项目根目录下,创建一个 webpack.config.js 文件,用于配置 Webpack:

-- -------------------- ---- -------
----- ---- - ----------------
----- ----------------- - -------------------------------
----- - ------------------ - - --------------------------------
----- ----------------- - -------------------------------
----- -------------------- - -----------------------------------

-------------- - -
  ------ ----------------
  ------- -
    ----- ----------------------- --------
    --------- ------------
  --
  -------- -
    ----------- ------- -------
  --
  ------- -
    ------ -
      -
        ----- --------
        ---- ------------
        -------- ---------------
      --
      -
        ----- ----------
        ---- --------------
      --
      -
        ----- ---------
        ---- -
          ----------------------------
          -------------
        --
      --
      -
        ----- -----------------------
        ---- -
          --------------
        --
      --
    --
  --
  -------- -
    --- -------------------
      --------- -------------------
      --------- -------------
    ---
    --- ---------------------
    --- -------------------
      --------- -
        - ----- --------------- --- ---------- --
      --
    ---
    --- ----------------------
      --------- ------------
    ---
  --
  ---------- -
    ------------ -------------------- --------
    --------- -----
    ----- -----
    ----- -----
  --
--

其中,entry 指定入口文件,这里为 ./src/main.tsoutput 指定输出目录和文件名,这里为 ./dist/bundle.jsresolve 指定模块的后缀名,这里为 .ts.js

modulerules 用于配置文件处理规则。首先,有一个 .ts 文件的规则,使用 ts-loader 处理,exclude 排除 node_modules。然后,有一个 .html 文件的规则,使用 html-loader 处理。接着,有一个 .css 文件的规则,使用 css-loader 处理,并通过 MiniCssExtractPlugin.loader 将 CSS 提取成独立的文件。最后,有一个文件资源的规则,使用 file-loader 处理。

plugins 中有四个插件:HtmlWebpackPlugin 用于生成 HTML 文件,CleanWebpackPlugin 用于清除打包目录,CopyWebpackPlugin 用于复制一些文件到打包目录,MiniCssExtractPlugin 用于将 CSS 提取成独立的文件。

devServer 是本地开发服务器的配置,contentBase 指定本地服务的根目录,这里为 ./distcompress 开启 gzip 压缩,port 指定端口,open 是否自动打开浏览器。

4. 编写 Angular 应用

src 目录下,创建一个 app 目录,用于存放 Angular 应用的组件。比如,创建一个 app.component.html 文件:

创建一个 app.component.ts 文件:

src 目录下,创建一个 main.ts 文件,用于启动 Angular 应用:

-- -------------------- ---- -------
------ - -------------- - ---- ----------------
------ - ---------------------- - ---- ------------------------------------
------ - --------- - ---- -------------------
------ - ----------- - ---- -----------------------------

-- ------------------------ -
  -----------------
-

---------------------------------------------------
  ---------- -- --------------------

其中,AppModule 是 Angular 应用的根模块,需要另外创建,这里不再详细介绍。

src 目录下,创建一个 index.html 文件:

-- -------------------- ---- -------
--------- -----
------
------
  ----- ----------------
  -------------- -----------
-------
------
  ---------------------
-------
-------

5. 执行打包命令

在命令行中,执行以下命令:

将会执行打包命令。打包后的文件会生成在 ./dist 目录下。

6. 启动本地服务器

在命令行中,执行以下命令:

将会启动本地开发服务器,通过访问 http://localhost:9000,可以查看打包后的应用。

总结

本文介绍了如何通过 Webpack 打包使用 TypeScript 编写的 Angular 应用,包括安装依赖、配置 TypeScript 和 Webpack、编写 Angular 应用、执行打包命令和启动本地服务器等步骤。希望本文对前端开发者有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6495979448841e98942b664c

纠错
反馈