1. nvm use 12
    2. npm i typescript -g
    3. tsc --init //生成Ts的标准编译配置(tsconfig.json)
    4. //安装webpack相关包
    5. npm i webpack wepack-cli webpack-dev-server -D
    6. //webpack加载包
    7. npm ts-loader typescript -D
    8. //自动生成首页并且加载相关Js文件的辅助工具
    9. npm install html-webpack-plugin -D
    10. //自动清空冗余编译代码
    11. cnpm install clean-webpack-plugin -D
    12. //合并代码工具
    13. cnpm install webpack-merge -D

    创建build文件夹,添加四个文件
    build/webpack.base.config.js

    1. const HtmlWebpackPlugin = require('html-webpack-plugin')
    2. module.exports = {
    3. entry: './index.ts',
    4. output: {
    5. filename: 'app.js'
    6. },
    7. resolve: {
    8. extensions: ['.js', '.ts', '.tsx']
    9. },
    10. module: {
    11. rules: [
    12. {
    13. test: /\.tsx?$/i,
    14. use: [{
    15. loader: 'ts-loader'
    16. }],
    17. exclude: /node_modules/
    18. }
    19. ]
    20. },
    21. plugins: [
    22. new HtmlWebpackPlugin({
    23. template: './src/tpl/index.html'
    24. })
    25. ]
    26. }

    build/webpack.config.js

    1. const { merge } = require('webpack-merge')
    2. const baseConfig = require('./webpack.base.config')
    3. const devConfig = require('./webpack.dev.config')
    4. const proConfig = require('./webpack.pro.config')
    5. module.exports = (env, argv) => {
    6. let config = argv.mode === 'development' ? devConfig : proConfig;
    7. return merge(baseConfig, config);
    8. };

    build/webpack.dev.config.js

    1. /**
    2. * 官方推荐包之一
    3. * cheap 会忽略文件的列信息
    4. * modules 会定位到Ts源码而不是转义后的Js代码
    5. * eval-source-map 会将source-map打包到Url文件中
    6. */
    7. const webpack = require('webpack');
    8. module.exports = {
    9. plugins: [
    10. new webpack.LoaderOptionsPlugin({
    11. options: {
    12. devtools: 'cheap-module-eval-source-map'
    13. }
    14. })
    15. ]
    16. }

    build/webpack.pro.config.js

    1. const { CleanWebpackPlugin } = require('clean-webpack-plugin')
    2. module.exports = {
    3. plugins: [
    4. new CleanWebpackPlugin()
    5. ]
    6. }

    添加package.json中的编译命令

    1. ...
    2. "scripts": {
    3. "start": "webpack serve --mode development --env development --config ./build/webpack.config.js",
    4. "test": "echo \"Error: no test specified\" && exit 1"
    5. },
    6. ...