grunt-tslint не работает над задачей часов

Я работаю над проектом angular2 и включил grunt-tslint для улучшения своего кода. Задание grunt "tslint" и задание grunt по умолчанию прекрасно работают, но когда я включаю его в задачу наблюдения, оно не работает. Я пытался удалить все остальные задачи часов, но тоже не работал.

Это мои версии:
хрюканье: 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 ответа

Решение

ОБНОВИТЬ:

Попробуйте вместо этого заменить задачу на часы следующим:

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

Замечания:

  1. Цель по имени tslint был удален из вашего watch задача.
  2. Призыв запустить tslint задача была добавлена ​​в tasks массив из ts цель.

Теперь, когда вы бежите $ grunt watch файлы будут:

  1. С подкладкой tslint в соответствии с правилами, определенными в tslint.json,
  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

ПРИМЕЧАНИЕ: я рекомендую попробовать вышеизложенное с копией каталога вашего проекта, чтобы увидеть, успешно ли это!

Я думаю, что нашел решение. Задача наблюдения наблюдала за папкой с двумя заданиями (ts и tslint), и она выполняла только ts (последнее задание). Я объединил оба, и теперь это работает:

        ts: {
            files: ['app/**/*.ts'],
            tasks: ['ts', 'tslint']
        }
Другие вопросы по тегам