如果我从 FileWatcher 运行 tsc,则使用 IntelliJ/WebStorm,我的编译错误会链接到编辑器中的文件,因此如果我双击编译器错误,它会打开该文件并将我带到有问题的代码行。
但是,如果我通过集成的 Grunt 控制台或 FileWatcher 运行 Grunt,则编译错误没有链接,我必须手动打开文件并转到有问题的行号。
有没有办法让 Grunt 产生的编译错误集成为链接,就像 TypeScript FileWatcher 对 tsc 的调用一样?
如果我从 FileWatcher 运行 tsc,则使用 IntelliJ/WebStorm,我的编译错误会链接到编辑器中的文件,因此如果我双击编译器错误,它会打开该文件并将我带到有问题的代码行。
但是,如果我通过集成的 Grunt 控制台或 FileWatcher 运行 Grunt,则编译错误没有链接,我必须手动打开文件并转到有问题的行号。
有没有办法让 Grunt 产生的编译错误集成为链接,就像 TypeScript FileWatcher 对 tsc 的调用一样?
将 Grunt 作为文件观察器运行时,您可以设置过滤器以使链接可点击。您可以使用现有过滤器作为示例:打开文件观察器设置,按输出过滤器...,打开过滤器设置并复制此处指定的正则表达式。见http://www.jetbrains.com/webstorm/webhelp/add-filter-dialog.html
I believe the '>>' added by grunt-typescript is throwing it off. Try grunt-ts (disclaimer : one of the authors) which is tested with webstorm https://github.com/grunt-ts/grunt-ts
在 Webstorm 8 中,无法在 Grunt 控制台输出上应用正则表达式过滤器。
正如 lena 所提到的,要走的路是直接通过外部工具条目调用 Grunt,并设置适当的正则表达式过滤器,例如:
对于咕噜声:
$FILE_PATH$\($LINE$,$COLUMN$\):.*
对于 grunt-tslint:
...$FILE_PATH$\[$LINE$,\s$COLUMN$\]:.*
另请参阅我上面关于在某些环境中对 grunt-tslint 的警告的评论。
我注意到在 Webstorm 9 中,内置的 Grunt 控制台正在使用 grunt-typescript 过滤/链接 typescript 编译错误。我不确定这是否是最近的更改,但它正在链接例如,
因此,我进入 grunt-tslint/node_modules/tslint/build/formatters,并将 proseFormatter.js 复制到 ./myproseFormatter.js。然后我对其进行了调整,使 tslint 输出格式与编译错误格式匹配,方法是用括号替换方括号,并删除行号和列号之间的空格。最后,我通过添加 formatter 和 formattersDirectory 属性在我的 gruntfile tslint 配置中引用了我的自定义格式化程序:
tslint: {
options: {
configuration: grunt.file.readJSON('tslint.json'),
formatter: 'myprose',
formattersDirectory: './'
},
all: {
src: [ 'app/**/*.ts' ]
}
}
它奏效了!