我正在开发一个angular2项目,并且已经包含了grunt-tslint来改进我的代码。这个笨拙的任务“tslint”和默认的grunt任务很好,但是当我将它包含在watch任务中时,它并不是linting。我试图删除所有其他手表任务,但也没有工作。
这是我的版本:
咕噜:v1.0.1
grunt-contrib-watch:1.0.0
grunt-ts:v6.0.0-beta.3
grunt-tslint:4.0.0
咕噜咕噜的任务:
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
tslint: {
options: {
configuration: "tslint.json",
force: false,
fix: false
},
files: {
src: ['app/**/*.ts']
}
},
ts: {
default : {
src: ['app/**/*.ts'],
outDir: 'outDir/app/',
tsconfig: './tsconfig.json'
}
},
watch: {
tslint: {
files: ['app/**/*.ts'],
task: ['tslint']
},
ts: {
files: ['app/**/*.ts'],
tasks: ['ts']
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-ts');
grunt.loadNpmTasks('grunt-tslint');
grunt.registerTask('default', [
'ts', 'tslint'
]);
grunt.registerTask('validate:ts', ['tslint']);
};
答案 0 :(得分:1)
我想我找到了解决方案。 监视任务正在观察具有两个任务(ts和tslint)的文件夹,并且它只运行ts(最后一个任务)。我结合了两个,现在它正在工作:
ts: {
files: ['app/**/*.ts'],
tasks: ['ts', 'tslint']
}
答案 1 :(得分:0)
<强>更新强>
请尝试使用以下代码替换您的观看任务:
watch: {
ts: {
files: ['app/**/*.ts'],
tasks: ['tslint', 'ts']
}
}
注意:
tslint
任务中已删除名为watch
的{{3}}。tslint
任务的调用现已添加到tasks
目标的ts
数组中。现在,当您运行 $ grunt watch
时,文件将为:
tslint
。tslint.json
grunt-ts
。希望这有帮助!
以前的答案:
一个可能的解决方案是尝试恢复到grunt-ts
包的最后一个稳定版本。
要做到这一点:
cd
到您的项目目录。
卸载当前版本的grunt-ts
:
$ npm uninstall grunt-ts --save-dev
grunt-ts
的最后一个稳定版本(似乎是target) $ npm install grunt-ts@5.5.1 --save-dev
注意:我建议您尝试使用项目目录的副本进行上述操作,看看它是否成功!