webpack搭建腳手架打包TypeScript代碼

創建文件夾

目錄結構: dabaots

初始化 npm init -y生成package.json文件

目錄結構:
dabaots
dabaots / package.json

然後在開發環境中安裝以下幾個工具

npm i -D

webpack··························(打包代碼的核心工具
webpack-cli·····················(webpack的命令行工具)
typescript ·······················(寫ts所需的核心包)
ts-loader ·························(通過ts-loader可以對webpack和ts進行整合)
html-webpack-plugin … (是自動生成html的一個webpack插件)
webpack-dev-server … (無需刷新更新頁面)
clean-webpack-plugin … ( 每次打包上線之前都會自動清空dist內的文件如何重新生成最新的文件)
“@babel/core” “@babel/preset-env” babel-loader core-js(安裝babel轉換,你是什麼環境他就會轉成什麼代碼)

可能會遇到的小問題:這裡可能會出現的問題就是你下載的依賴包webpack-dev-server版本如果和谷歌的不適配,建議將插件版本改低一點或者谷歌瀏覽器升級成最新版本否則會出現錯誤Cannot GET /chrome.exe

接下來創建webpack.config.js進行配置

目錄結構:
dabaots
dabaots / package.json
dabaots / webpack.config.js

// 引入一個包
const path = require("path")

//引入自動生成html的包
const HtmlWebpackPlugin = require("html-webpack-plugin")

//引入更新dist文件的插件
const {CleanWebpackPlugin} = require("clean-webpack-plugin")

// webpack中的所有的配置信息都應該寫入moudle.exports中
module.exports={
    // 指定入口文件
    entry:"./src/index.ts",
    // 指定打包文件所在目錄
    output:{
        // 指定打包文件的目錄
        path:path.resolve(__dirname,"dist"),
        // 指定打包後文件的文件
        filename:"bundle.js",
        //編譯的時候不使用箭頭函數
        environment: {
            arrowFunction: false
        }
    },
    
    //webpack打包時要使用到module這個模塊
    module:{
        // 指定要加載的規則
        rules:[{
            // test指定的是規則生效的文件
            test:/\.ts$/,
            // use是要使用的loader
            //配置babel
            use:[
                {//指定加載器
                    loader:"babel-loader",
                    options:{
                        //設置預定義環境
                        presets:[
                            [
                                //指定環境的插件
                                "@babel/preset-env",
                                //配置信息
                                {
                                    //要兼容的瀏覽器
                                    targets:{
                                        "chrome":"88"
                                    },
                                    // 指定corejs的版本
                                    "corejs":"3",
                                    //表示按需加載
                                    "useBuiltIns":"usage"
                                }
                            ]
                        ]
                    }
                },
                'ts-loader'
            ],
            //設置不被打包上傳的文件
            exclude:["/node_modules/"]
        }]
    },
    
    // 配置webpack插件
    plugins:[
        new HtmlWebpackPlugin({
            // 自定義html模板地址
            template:"./src/index.html"
        }),
        //每次打包上線之前都會自動清空dist內的文件如何重新生成最新的文件
        new CleanWebpackPlugin()
    ],
    
    resolve:{
        //解決在ts文件內部單獨引入其他ts包時候報錯的問題
        extensions:['.ts','.js']
    }
}

最後在package.json中寫入打包及運行等腳本

在終端npm run build 打包運行即可

打包成功後會自動生成一個dist文件

npm run start 自動打開谷歌瀏覽器且內容為熱更新的

到此這篇關於webpack搭建腳手架打包TypeScript代碼的文章就介紹到這瞭,更多相關webpack打包TypeScript代碼內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: