javascript - Webstorm 11 无需编译即可检查 typescript 文件。使用 webpack 进行编译

标签 javascript typescript webstorm webpack

我正在尝试将 webstorm 与 webpack 和 typescript 一起使用,但我一直在进行错误检查。 我想用webpack编译ts文件,所以我需要避免通过Webstorm编译源文件,但似乎Webstorm只在编译过程中执行错误检查。

对应于 webstorm 文档“Resolve objects using tsconfig.json”应该在没有编译的情况下激活错误检查,但事实并非如此。

示例代码,Webstorm 没有突出显示

 { let z = 4;}
 console.log(z);

我的 tsconfig 文件:

 {
  "compilerOptions": {
    "module": "commonjs",
    "out": "build/tsc.js",
    "target": "es5",
    "sourceMap": true,
    "jsx": "react"
  },
  "exclude": [
    "node_modules"
  ]
}

同时 Visual Studio 代码显示错误正常。 我的配置有任何错误吗? 是否可以突出显示使用 Webstorm 或其他 JetBrains IDE 纠正的错误?

typescript 版本 1.7,Webstorm 11。

最佳答案

原始答案(已过时 - 请参阅下面的更新):

正如 Valery 正确指出的那样,您可以将“noEmit”属性设置为 true 以防止编译器创建任何输出文件。

但是,如果您的 Webpack 安装程序使用相同的 tsconfig.json 文件,它也会阻止 Webpack 创建输出文件。您只会在下次重新启动 webpack 时注意到这一点。

在我的 webpack 设置中,我使用的是“ts-loader”Typescript 加载器。 正如在 ts-loader github page 中提到的您可以覆盖编译器选项。

所以这是我的设置:

tsconfig.json(IDE 和 Webpack 使用)

"compilerOptions": {
    "noEmit": true, // do not emit js and map files
    ...

webpack.config.json(Webpack 使用)

{
    test: /\.ts$/,
    loader: 'ts-loader',
    query: {
      'compilerOptions': {
        "noEmit": false // make sure js files do get emitted
      }
    },
    ...
}

Et voila:IDE 编译器检查没有 js 和 js.map 文件污染您的源代码文件夹!

更新:我的回答在 1 月份是一个有效的解决方法,但今天更好的解决方案是按照 anstarovoyt 的建议在 Webstorm/IDEA 中使用 Typescript 服务。

另外不要忘记取消选中“启用 TypeScript 编译器”,如下所示:

enter image description here

关于javascript - Webstorm 11 无需编译即可检查 typescript 文件。使用 webpack 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34318468/

相关文章:

javascript - 如何显示 JSON 数据中的图像 URL?

JavaScript Canvas - 矩形绕圆旋转

javascript - WebStorm 和 console 执行的区别

javascript - 如何向 HTML 表格单元格添加唯一命名的 JavaScript 函数

javascript - 谷歌地图 - 为多个标记重用单个信息窗口

javascript - 空 Guid 字符串在 Angular/TypeScript 中显示为 0

node.js - Jasmine - 监视在同一文件中调用的函数

typescript - Typescript 的泛型类型别名 Exclude<T,U> 到底是如何工作的?

javascript - 在 WebStorm 中通过 Javascript 快速运行项目的快捷方式?

webstorm - 文件在 WebStorm 中显示为灰色意味着什么?