overlay for vue-tslint

vue/cli 生成的 tslint 项目中在页面上无法显示报错信息

image.png
image.png

vue.cofnig.js

typescript 踩坑

  1. 自定义规则是可以的, 参照官方文档

    • 需要tsc 编译成js
    • 然后在tslint.json 中配置 rulesDirectory, 就可以在rules 里直接引用这个规则了
  2. 自定义formatter 现在还不能用

    • tslint 设置输出格式也是只能在 tslint 命令行里使用
    • 在tslint.json 或者tsconfig.json 配置就别想了 官方issue
  3. tslint 规则报错 overlay

    • 亲测, 由于tslint 正常输出的格式并不是comand line 中正常的 label 错误。 只是颜色不同, 输出文字的格式不同。 所以webpack的overlay 对于tslint 根本无效
    • fork-ts-checker-webpack-plugin可解, 专为检测ts 类型做的一个插件。 同时提供规则化的输出。

推荐配置

  • tslint.json
{
  defaultSeverity: "warning"
  // other settings
}
  • vue.config.js
module.exports = {
  devServer: {
    // quiet: true,
    overlay: {
      warnings: true,
      errors: true
    }
  },
  chainWebpack: config => {
    config.plugin('fork-ts-checker').tap(([options]) => {
      return [{
        //一下几项都是推荐配置,async false使其可以在 页面上显示
        async: false,
        tslint: true,
        vue: true
      }]
    })
  },
  configureWebpack: {
    plugins: []
  }
}

最终,页面上可以显示报错信息了

image.png
image.png

todo

  • 报错信息只能显示一条记录
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容