typescript中的打包方法以及配置方法

Posted stay_少年与梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript中的打包方法以及配置方法相关的知识,希望对你有一定的参考价值。

文章目录


前言

今天我们一起继续来学习TS中的打包。


webpack

通常情况下,实际开发中我们都需要使用构建工具对代码进行打包,TS同样也可以结合构建工具一起使用,下边以webpack为例介绍一下如何结合构建工具使用TS。

步骤:

1. 初始化项目

 - 进入项目根目录,执行命令 ```npm init -y```
   主要作用:创建package.json文件

2. 下载构建工具

在终端中输入该命令

  • npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin
    这时共安装了7个包,分别是
    • webpack
      构建工具webpack
    • webpack-cli
      webpack的命令行工具
    • webpack-dev-server
      webpack的开发服务器
    • typescript
      ts编译器
    • ts-loader
      ts加载器,用于在webpack中编译ts文件
    • html-webpack-plugin
      webpack中html插件,用来自动创建html文件
    • clean-webpack-plugin
      webpack中的清除插件,每次构建都会先清除目录

3. 根目录下创建webpack的配置文件webpack.config.js

const path = require("path");
   const HtmlWebpackPlugin = require("html-webpack-plugin");
   const  CleanWebpackPlugin  = require("clean-webpack-plugin");
   
   module.exports = 
       optimization:
           minimize: false // 关闭代码压缩,可选
       ,
   
       entry: "./src/index.ts",
       
       devtool: "inline-source-map",
       
       devServer: 
           contentBase: './dist'
       ,
   
       output: 
           path: path.resolve(__dirname, "dist"),
           filename: "bundle.js",
           environment: 
               arrowFunction: false // 关闭webpack的箭头函数,可选
           
       ,
   
       resolve: 
           extensions: [".ts", ".js"]
       ,
       
       module: 
           rules: [
               
                   test: /\\.ts$/,
                   use: 
                      loader: "ts-loader"     
                   ,
                   exclude: /node_modules/
               
           ]
       ,
   
       plugins: [
           new CleanWebpackPlugin(),
           new HtmlWebpackPlugin(
               title:'TS测试'
           ),
       ]
   
   

简单的注释一下

// 引入一个包
const path=require("path");
// webpack中的所有的配置信息都应该写在module.exports中

module.exports=

    // 指定入口文件
    entry:"./src/index.ts",

    // 指定打包文件所在目录
    output:
        // 指定打包文件的目录
        path:path.resolve(__dirname,"dist"),
        // 打包后文件的文件
        filename:"bundle.js"
    ,

    // 指定webpack打包时要使用模板
    module:
        // 指定要加载的规则
        rules:[
            
                // test指定的是规则生效的文件
                test: /\\.ts$/,
                // 要使用的loader
                use:'ts-loader',
                // 要排除的文件
                exclude: /node_modules/
            
        ]
    



4. 根目录下创建tsconfig.json,配置可以根据自己的需要去修改添加

 ```json
   
       "compilerOptions": 
           "target": "ES2015",
           "module": "ES2015",
           "strict": true
       
   
   ```

5. 修改package.json添加如下配置

 ```json
   
     "scripts": 
       "test": "echo \\"Error: no test specified\\" && exit 1",
       "build": "webpack",
       "start": "webpack serve --open chrome.exe"
     ,
   
   ```

6. 在src下创建ts文件,并在并命令行执行npm run build对代码进行编译,或者执行npm start来启动开发服务器。

Babel

经过这样一系列的配置,使得TS和webpack已经结合到了一起,除了webpack,开发中还经常需要结合babel来对代码进行转换以使其可以兼容到更多的浏览器,在上述步骤的基础上,通过以下步骤再将babel引入到项目中。

1. 安装依赖包:

  • npm i -D @babel/core @babel/preset-env babel-loader core-js
    这样,一共安装了4个包,分别是

  • @babel/core
    babel的核心工具

  • @babel/preset-env
    babel的预定义环境

  • @babel-loader
    babel在webpack中的加载器

  • core-js
    core-js用来使老版本的浏览器支持新版ES语法

2. 修改webpack.config.js配置文件

   module: 
       rules: [
           
               test: /\\.ts$/,
               use: [
                   
                       loader: "babel-loader",
                       options:
                           presets: [
                               [
                                   "@babel/preset-env",
                                   
                                       "targets":
                                           "chrome": "58",
                                           "ie": "11"
                                       ,
                                       "corejs":"3",
                                       "useBuiltIns": "usage"
                                   
                               ]
                           ]
                       
                   ,
                   
                       loader: "ts-loader",
   
                   
               ],
               exclude: /node_modules/
           
       ]
   

这样,使用ts编译后的文件将会再次被babel处理,使得代码可以在大部分浏览器中直接使用,可以在配置选项的targets中指定要兼容的浏览器版本。


总结

我们今天一起学习了TypeScript中的打包方法,以及它的配置文件,配置方法。

如果觉得本文写得不错,记得留下你的赞哟,

以上是关于typescript中的打包方法以及配置方法的主要内容,如果未能解决你的问题,请参考以下文章

typescript中的打包方法以及配置方法

基于HBuilder将H5站点打包成app

创建react项目并配置webpack

webpack + typescript + babel打包*.min.js文件的环境配置

可选链打包报错

从0搭建React+antd+TypeScript+Umi Hooks+Mobx前端框架