ts基础配置

691 阅读1分钟
  • npm init -y 初始化项目
  • 全局安装ts:npm install typescript -g
  • 创建ts配置项:tsc -- init 生成ts配置文件

  • 先写一个ts文件,在根目录下创建src文件夹,在src下创建index.ts
    let str:string='hello world'
  • 在命令后输入 tsc ./src/index.ts 就自动编译出index.js

  • 配置构建工具,安装webpack,webpack-cli,webpack-dev-server

    npm i webpack webpack-cli webpack-dev-server -D
  • 创建build目录来放配置文件,在build目录下分别创建下面几个文件
    webpack.config.js //webpack基础配置
    webpack.dev.config.js //开发环境配置
    webpack.pro.config.js //生产环境配置
    webpack.base.config.js //开发环境和生成环境公共配置

  • 先配置公共文件webpack.base.config.js
  • 安装ts-loader和html-webpack-plugin:npm i ts-loader html-webpack-plugin -D
    const HtmlWebpackPlugin = require('html-webpack-plugin')
    module.exports = {
        entry:'./src/index.js',
        output:{
            filename:'app.js'
        },
        resolve:{
            extensions:['.js','.ts','.tsx']
        },
        module:{
            rules:[
                {
                    test:/\.tsx?$/i,
                    use:[{
                        loader:'ts-loader'
                    }],
                    exclude:/node_modules/
                }
            ]
        },
        plugins:[
            new HtmlWebpackPlugin({
                template:'./src/tpl/index.html'
            })
        ]
    }
  • 在src下创建tpl/index.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <div id="app"></div>
    </body>
    </html>
  • 配置开发环境webpack.dev.config.js
    module.exports = {
        devtool:'cheap-module-eval-source-map' //cheap:表示会忽略类信息,
        //module:调试的时候会自动定位到ts源码,而不是js源码
    }
  • 配置生产环境webpack.pro.config.js
    • 安装clean-webpack-plugin
    const { CleanWebpackPlugin} = require('clean-webpack-plugin')
    //clean-webpack-plugin:每次成功构建后清空构建目录
    module.exports = {
        plugins:[
            new CleanWebpackPlugin()
        ]
    }
  • 配置入口文件webpack.config.js
    • 安装webpack-merge typescript
    const merge = require('webpack-merge')
    const baseConfig = require('./webpack.base.config')
    const devConfig = require('./webpack.dev.config')
    const proConfig = require('./webpack.pro.config')
    
    let config = process.NODE_ENV === 'development' ? devConfig:proConfig;
    
    module.exports=merge(baseConfig,config)
  • 在package.json中配置命令
    "start":"webpack-dev-server --mode=development --config ./build/webpack.config.js",
    "build":"webpack --mode=production --config ./build/webpack.config.js"
  • 执行npm start就可以在http://localhost:8080/访问
  • 执行npm run build就可以打包