Typescript 結(jié)合 webpack 簡單使用

話不多說, 直接上手啦!
一、打包項目
  • 創(chuàng)建一個項目文件夾并 初始化項目 npm init -y

  • 生成 package.json 配置文件

  • 修改文件, 增加 bulid 命令 "build": "webpack",

    image.png

  • webpack 部分

    • 安裝 webpack 需要的一些依賴

      npm i -D webpack webpack-cli typescript ts-loader

    • 創(chuàng)建 webpack 的配置文件 webpack.config.js

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


// webpack 中的所有的配置信息都應該寫在 module.exports 中
module.exports = {

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

   // 指定打包文件所在目錄
   output: {
       // 指定打包后的目錄
       path: path.resolve(__dirname, 'dist'),

       // 打包后文件的文件名
       filename: "bundle.js"
   },


   // 指定 webpack 打包時要使用模塊
   module: {

       // 指定要加載的規(guī)則
       rules: [{
           // test 指定規(guī)則生效的文件
           test: /\.ts$/,
           // 要使用的 loader
           use: 'ts-loader',
           // 要排除的文件
           exclude: /node_modules/
       }]

   }
}
  • TypeScript 部分
    • 創(chuàng)建 typescript 配置文件

      tsc --init

  • 生成文件 tsconfig.json
{
  "compilerOptions": {
    
    "target": "es5",                            
    
    "module": "commonjs",                      
  
    "strict": true,                               
   }
}

  • 執(zhí)行 npm run build 進行打包, 生成打包文件, 這時候就能看到打包后的效果啦, 下面再讓我們看看怎么把項目運行起來吧!
二俺榆、運行項目
  • 安裝 webpack 插件, 使的打包后會自動創(chuàng)建 html 文件, 并自動引入相關的 js 文件

    npm i -D html-webpack-plugin

  • 配置 webpack.config.js 文件
    image

    image.png
  • 安裝 webpack 開發(fā)服務器插件 ( 可以根據(jù)項目的改變自動刷新 )

    npm i -D webpack-dev-server

    • 安裝時要注意版本兼容問題, webpack 5 版本不兼容 比較高版本的 webpack-dev-server, 所以這里安裝的是 npm i -D webpack-dev-server@3.11.2
    • 配置 package.json 文件 "serve": "webpack serve --open chrome.exe",
      image.png
  • 執(zhí)行 npm start 啟動項目
  • 安裝 webpack 插件, 在打包之前清除 dist 目錄下的舊文件, 再生成新文件, 避免緩存

    npm i -D clean-webpack-plugin

    • 引入插件并配置
      image
      image
  • 給 webpack 設置可引用模塊
    • 用來設置引用模塊 (這樣配置自后, 里面索設置的文件類型可以作為模塊引用)


      image
三感昼、 處理兼容性( 兼容 不同瀏覽器 )
  • 安裝 babel 依賴

    npm i -D @babel/core @babel/preset-env babel-loader core-js

    image.png
  • 配置 webpack.config.js 文件 ( 在 module 中 配置 babel )
    // 指定 webpack 打包時要使用模塊
    module: {

        // 指定要加載的規(guī)則
        rules: [{
            // test 指定規(guī)則生效的文件
            test: /\.ts$/,
            // 要使用的 loader
            use: [

                // 配置 babel
                {

                    // 指定加載器
                    loader: "babel-loader",

                    // 設置 babel
                    options: {

                        // 設置預定義的環(huán)境(假設代碼要運行的瀏覽器環(huán)境)
                        presets: [
                            [
                                // 指定環(huán)境的插件
                                "@babel/preset-env",

                                // 配置信息
                                {
                                    // 要兼容的目標瀏覽器
                                    targets: {
                                        "chrome": "58",
                                        "ie": "11"
                                    },

                                    // 指定 corejs 的版本
                                    "corejs": "3",

                                    // 使用 corejs 的方式, "usage" 表示按需加載
                                    "useBuiltIns": "usage"

                                }
                            ]
                        ]

                    }

                },

                'ts-loader',
            ],
            // 要排除的文件
            exclude: /node_modules/
        }]

    },
  • 為兼容 低版本瀏覽器, 設置 webpack 打包時, 不使用箭頭函數(shù)
    image.png
  • 打包后的結(jié)果
    image.png
四、附上完整 dome 地址, 可在里面 Typescript 更多配置項 文件夾中查看, 更多 TS 常用配置項
https://github.com/chenyanNc/TSWebpackDome.git

文筆不好請多見諒 (????)罐脊,歡迎指摘呀 ~~~

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末定嗓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子萍桌,更是在濱河造成了極大的恐慌宵溅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件上炎,死亡現(xiàn)場離奇詭異恃逻,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門辛块,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畔派,“玉大人,你說我怎么就攤上這事润绵∠咭” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵尘盼,是天一觀的道長憨愉。 經(jīng)常有香客問我,道長卿捎,這世上最難降的妖魔是什么配紫? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮午阵,結(jié)果婚禮上躺孝,老公的妹妹穿的比我還像新娘。我一直安慰自己底桂,他們只是感情好植袍,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著籽懦,像睡著了一般于个。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上暮顺,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天厅篓,我揣著相機與錄音,去河邊找鬼捶码。 笑死羽氮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的惫恼。 我是一名探鬼主播乏苦,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尤筐!你這毒婦竟也來了汇荐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤盆繁,失蹤者是張志新(化名)和其女友劉穎掀淘,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體油昂,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡革娄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年倾贰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拦惋。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡匆浙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出厕妖,到底是詐尸還是另有隱情首尼,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布言秸,位于F島的核電站软能,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏举畸。R本人自食惡果不足惜查排,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抄沮。 院中可真熱鬧跋核,春花似錦、人聲如沸叛买。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽聪全。三九已至,卻和暖如春辅辩,著一層夾襖步出監(jiān)牢的瞬間难礼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工玫锋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛾茉,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓撩鹿,卻偏偏與公主長得像谦炬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子节沦,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容