2022-12-09 webpack支持ts

webpack 支持 ts

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

  2. tsconfig.json

  3. 两种思路

    1. 使用 typescript (tsc 对代码进行编译), 配置ts-loader
    2. babel编译ts, ts只进行语法校验
  4. webpack 配置 ts-loader

    1. 底层依赖 typescript (额外不需要安装 typescript, 只安装 ts-loader)
    2. 配置
      {
        test: /\.ts$/
        use: ['ts-loader']
      }
      
    3. 不太好支持新的语法(ts 中只处理了语法转化, 但是新的特性没有被 babel 处理)
  5. babel-loader 编译 ts

    1. @babel/preset-typescript 帮忙处理 typescript 语法填充

      {
        test: /\.ts$/
        use: ['babel-loader']
      }
      
      // .babelrc
      {
        presets: [
          ['@babel/preset-env', { builtIns: 'usage', corejs: 3 }],
          ['@babel/preset-typescript']
        ]
      }
      
    2. babel-loader 的缺点: 在 build 阶段不会 ts 编译报错, 会正常生成dist目录下打包文件, 只会在代码的本地运行的时候提示报错 (不太友好)

  6. typescript 最佳实践

    {
       test: /\.ts$/
       use: ['babel-loader']
      // babelrc文件中, 记得在presets中添加 @babel/preset-typescript
    }
    
    // package.json
    "ts-check": "tsc --noEmit", // 只进行校验, 不生成文件
    "build": "npm run ts-check && webpack" // 构建之前先进行编译检查
     "build:types": "tsc -p tsconfig.json --emitDeclarationOnly",  // 生成类型文件
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容