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']
}
}
Замечания:
- Цель по имени
tslint
был удален из вашегоwatch
задача. - Призыв запустить
tslint
задача была добавлена вtasks
массив изts
цель.
Теперь, когда вы бежите $ grunt watch
файлы будут:
- С подкладкой
tslint
в соответствии с правилами, определенными вtslint.json
, - Если они пройдут эту проверку, они будут переданы с
grunt-ts
, - Если они не пройдут проверку, файлы не будут переданы, а все ошибки будут сообщены CLI.
Надеюсь это поможет!
ПРЕДЫДУЩИЙ ОТВЕТ:
Одно из возможных решений - попытаться вернуться к последней стабильной версии grunt-ts
пакет.
Сделать это:
cd
в каталог вашего проекта.Удалить текущую версию
grunt-ts
:
$ npm uninstall grunt-ts --save-dev
- Затем установите последний стабильный выпуск
grunt-ts
(который выглядит как 5.5.1)
$ npm install grunt-ts@5.5.1 --save-dev
ПРИМЕЧАНИЕ: я рекомендую попробовать вышеизложенное с копией каталога вашего проекта, чтобы увидеть, успешно ли это!
Я думаю, что нашел решение. Задача наблюдения наблюдала за папкой с двумя заданиями (ts и tslint), и она выполняла только ts (последнее задание). Я объединил оба, и теперь это работает:
ts: {
files: ['app/**/*.ts'],
tasks: ['ts', 'tslint']
}