2022-12-09 webpack支持ts

webpack 支持 ts

  1. npm install -g typescript (支持 tsc)

  2. tsconfig.json

  3. 兩種思路

    1. 使用 typescript (tsc 對(duì)代碼進(jìn)行編譯), 配置ts-loader
    2. babel編譯ts, ts只進(jìn)行語(yǔ)法校驗(yàn)
  4. webpack 配置 ts-loader

    1. 底層依賴 typescript (額外不需要安裝 typescript, 只安裝 ts-loader)
    2. 配置
      {
        test: /\.ts$/
        use: ['ts-loader']
      }
      
    3. 不太好支持新的語(yǔ)法(ts 中只處理了語(yǔ)法轉(zhuǎn)化, 但是新的特性沒(méi)有被 babel 處理)
  5. babel-loader 編譯 ts

    1. @babel/preset-typescript 幫忙處理 typescript 語(yǔ)法填充

      {
        test: /\.ts$/
        use: ['babel-loader']
      }
      
      // .babelrc
      {
        presets: [
          ['@babel/preset-env', { builtIns: 'usage', corejs: 3 }],
          ['@babel/preset-typescript']
        ]
      }
      
    2. babel-loader 的缺點(diǎn): 在 build 階段不會(huì) ts 編譯報(bào)錯(cuò), 會(huì)正常生成dist目錄下打包文件, 只會(huì)在代碼的本地運(yùn)行的時(shí)候提示報(bào)錯(cuò) (不太友好)

  6. typescript 最佳實(shí)踐

    {
       test: /\.ts$/
       use: ['babel-loader']
      // babelrc文件中, 記得在presets中添加 @babel/preset-typescript
    }
    
    // package.json
    "ts-check": "tsc --noEmit", // 只進(jìn)行校驗(yàn), 不生成文件
    "build": "npm run ts-check && webpack" // 構(gòu)建之前先進(jìn)行編譯檢查
     "build:types": "tsc -p tsconfig.json --emitDeclarationOnly",  // 生成類(lèi)型文件
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容