如何让tslint监视特定文件夹中的更改?

时间:2017-02-28 17:52:12

标签: typescript webpack-2 tslint

我正在使用webpack 2,它会告诉我我的打字稿代码是否存在编译问题。但是,我还没有找到一种方法来运行tslint并让它运行webpack在dev-server模式下运行时检测到的每一个变化。

我尝试让tslint-loader正常工作,但对于我项目中的每个文件,它只是告诉我:

  

/src/main.ts没有指定有效规则

我正在使用它:

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我每次做出更改时都会在webpack-dev-server模式下告诉我lint错误吗?
  2. 只需从命令行运行tslint并持续不断地观察"观看"我项目中的文件?我正在寻找类似tslint ./src/**/*.ts -t --force的内容,但根据tslint docs添加了--watch标记,但该标记并不存在。
  3. 我不希望use my editor(例如VS Code),因为我团队中的每个人都不会使用它。我希望解决方案包含在webpack配置或package.json脚本中。

    谢谢!

2 个答案:

答案 0 :(得分:13)

就您可以从命令行运行的脚本而言,您可以尝试使用npm-watch:https://www.npmjs.com/package/npm-watch

我已经用它来成功地做你正在谈论的事情。这就是我的所作所为:

安装npm-watch到我的项目:

$ npm install npm-watch --save-dev

在我的package.json文件中添加了以下内容:

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

我认为npm-watch是一个很好的工具,可以为没有它的工具提供手表功能,例如tslint。

<强>更新

此外,如果您不想添加&#34;手表&#34;在你的package.json文件中,我实际上刚刚发现了一个我更喜欢的新工具chokidar。它允许您指定要在同一行上运行的文件选择器和命令。

这是我更新的package.json:

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

你基本上给它一个或多个文件选择器,然后使用&#39; -c&#39;参数,用于指定在更改任何文件时运行的命令。

所以现在你可以运行命令:

$ npm run lint:watch

我喜欢在设置--initial标志的情况下运行它,因此在执行命令之前它不会等待任何文件更改。

答案 1 :(得分:0)

如果您使用的是TypeScript,则可以使用tsc -w来查看更改。

 "scripts": {
    "start": "tsc -w",
  }