【问题标题】:grunt-tslint is not working at the watch taskgrunt-tslint 不在 watch 任务中工作
【发布时间】:2017-01-12 13:22:17
【问题描述】:

我正在开发一个 angular2 项目,并包含 grunt-tslint 来改进我的代码。 grunt 任务“tslint”和默认 grunt 任务很好,但是当我将它包含到 watch 任务中时,它不是 linting。我试图删除所有其他监视任务,但也没有工作。

这是我的版本:
咕噜声:v1.0.1
grunt-contrib-watch: 1.0.0
grunt-ts:v6.0.0-beta.3
咕噜-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']);

};

【问题讨论】:

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


    【解决方案1】:

    我想我找到了解决办法。 监视任务正在监视具有两个任务(ts 和 tslint)的文件夹,它只运行 ts(最后一个任务)。我将两者结合起来,现在它正在工作:

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

    【讨论】:

    • 哈 - 我刚刚用相同的答案更新了上一篇文章。
    • 嗨,太好了。非常感谢您的支持
    【解决方案2】:

    更新:

    尝试将您的监视任务替换为以下内容:

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

    注意:

    1. 名为tslint 的target 已从您的watch 任务中删除。
    2. 运行tslint 任务的调用现已添加到ts 目标的tasks 数组中。

    现在,当您运行 $ grunt watch 时,文件将是:

    1. 根据tslint.json 中定义的规则使用tslint 进行linted。
    2. 如果他们通过了检查,他们将被转译为grunt-ts。
    3. 如果检查失败,则不会转译任何文件,并且将向 CLI 报告任何错误。

    希望这会有所帮助!


    以前的答案:

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

    为此:

    1. cd 到您的项目目录。

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

    $ npm uninstall grunt-ts --save-dev

    1. 然后安装grunt-ts 的最后一个稳定版本(似乎是5.5.1)

    $ npm install grunt-ts@5.5.1 --save-dev

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

    【讨论】:

    • 感谢您的提示。我尝试了一下,但它仍然无法正常工作。但是我觉得最后还是用stabel版本比较好,我“更新”到v5.5.1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多