grunt-tslint不参与监视任务

时间:2017-01-12 13:22:17

标签: gruntjs grunt-contrib-watch tslint grunt-ts

我正在开发一个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']);

};

2 个答案:

答案 0 :(得分:1)

我想我找到了解决方案。 监视任务正在观察具有两个任务(ts和tslint)的文件夹,并且它只运行ts(最后一个任务)。我结合了两个,现在它正在工作:

        ts: {
            files: ['app/**/*.ts'],
            tasks: ['ts', 'tslint']
        }

答案 1 :(得分:0)

<强>更新

请尝试使用以下代码替换您的观看任务:

watch: {
    ts: {
        files: ['app/**/*.ts'],
        tasks: ['tslint', 'ts']
    }
}

注意:

  1. tslint任务中已删除名为watch的{​​{3}}。
  2. 运行tslint任务的调用现已添加到tasks目标的ts数组中。
  3. 现在,当您运行 $ grunt watch 时,文件将为:

    1. 根据tslint
    2. 中定义的规则使用tslint.json
    3. 如果他们通过该检查,则会使用grunt-ts
    4. 进行描述
    5. 如果他们检查失败,则不会编译任何文件,并且会向CLI报告任何错误。
    6. 希望这有帮助!

      以前的答案:

      一个可能的解决方案是尝试恢复到grunt-ts包的最后一个稳定版本。

      要做到这一点:

      1. cd到您的项目目录。

      2. 卸载当前版本的grunt-ts

      3. $ npm uninstall grunt-ts --save-dev

        1. 然后安装grunt-ts 的最后一个稳定版本(似乎是target
        2. $ npm install grunt-ts@5.5.1 --save-dev

          注意:我建议您尝试使用项目目录的副本进行上述操作,看看它是否成功!