Как заставить tslint следить за изменениями в определенной папке?

Я использую webpack 2, и он скажет мне, есть ли проблемы с компиляцией с моим кодом typescript. Однако я не понял, как запустить tslint через него и запустить его с каждым изменением, обнаруженным webpack, когда он работает в режиме dev-server.

перейти tslint-loader работает, но для каждого файла в моем проекте он просто говорит мне:

/ src / main.указаны действительные правила tsNo

Я используя его как таковой:

rules: [
  {
    test: /.ts$/,
    enforce: 'pre',
    loader: 'tslint-loader',
    options: {
      configuration: {
        configFile: true // I have also tried setting this to "tslint.json"
      }
    }
  },
  ... more loaders...

все еще нет радости.

Это там способ либо:

  1. есть tslint-loader Я использую сообщить мне об ошибках lint в режиме webpack-dev-server каждый раз, когда я делаю изменения?
  2. просто запустите tslint из командной строки и постоянно "смотрите" файлы в моем проекте? Я ищу что-то вроде tslint ./src/**/*.ts -t --force, но с дополнительным --watch флаг, который не существует по tslint docs.

Я бы предпочел не использовать мой редактор (например, VS Code), поскольку не все в моей команде используют его. Я бы предпочел, чтобы решение содержалось либо в конфигурации webpack, либо в пакете.сценарии json.

спасибо!

1 ответов


что касается сценария, который вы можете запустить из командной строки, вы можете попробовать использовать npm-watch:https://www.npmjs.com/package/npm-watch.

я использовал его, чтобы успешно сделать то, о чем вы говорите. Вот что я сделал:--7-->

установлен npm-watch для моего проекта:

$ npm install npm-watch --save-dev

добавил следующее в мой пакет.файл json:

"watch": {
    "lint": "src/main.ts"
},
"scripts": {
    "lint": "tslint src/**/*.ts -t verbose",
    "watch": "npm-watch"
},

Я считаю, что npm-watch-хороший инструмент для предоставления функциональности часов инструментам, которые не возьмите его, как tslint.

обновление:

кроме того, если вы не хотите добавлять раздел "часы" в свой пакет.файл json, я на самом деле только что обнаружил новый инструмент, который мне нравится еще больше, называется chokidar. Это позволяет указать селекторы файлов и команды, которые вы хотите запустить все в одной строке.

вот мой обновленный пакет.в JSON:

"scripts": {
    "lint:watch": "chokidar webpack.config.* src/**/*.ts buildScripts/**/*.ts -c \"npm run lint\" --initial --verbose"
},

вы в основном даете ему один или несколько селекторов файлов, а затем используете параметр'- c ' для указания команда, которую вы хотите запустить при изменении любого из этих файлов.

теперь вы можете просто запустить команду:

$ npm run lint:watch

мне нравится запускать его с установленным флагом --initial, поэтому он не ждет изменения файлов перед выполнением команды.