如何让 tslint 监视特定文件夹中的更改?
How do I get tslint to watch for changes in a specific folder?
我正在使用 webpack 2,如果我的打字稿代码存在编译问题,它会告诉我。但是,我还没有想出一种方法来 运行 tslint 通过它并让它 运行 在 webpack 在开发服务器模式下 运行ning 时检测到的每个更改。
我已经尝试让 tslint-loader 工作,但对于我项目中的每个文件,它只是告诉我:
/src/main.tsNo valid rules have been specified
我是这样使用它的:
rules: [
{
test: /\.ts$/,
enforce: 'pre',
loader: 'tslint-loader',
options: {
configuration: {
configFile: true // I have also tried setting this to "tslint.json"
}
}
},
... more loaders...
还是不开心。
有办法:
- 我正在使用的 tslint-loader 是否会在我每次进行更改时通知我 webpack-dev-server 模式下的 lint 错误?
- 只需从命令行 运行 tslint 并持续 "watch" 我项目中的文件?我正在寻找类似
tslint ./src/**/*.ts -t --force
的内容,但根据 tslint docs. ,还有一个不存在的附加 --watch
标志
我不想 use my editor(例如 VS Code),因为我团队中并不是每个人都使用它。我希望解决方案包含在 webpack 配置或 package.json 脚本中。
谢谢!
就您可以从命令行 运行 编写的脚本而言,您可以尝试使用 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。
更新:
此外,如果您不想在 package.json 文件中添加 "watch" 部分,实际上我刚刚发现了一个我更喜欢的新工具,叫做 chokidar。它允许您在同一行上指定要 运行 的文件选择器和命令。
这是我的更新 package.json:
"scripts": {
"lint:watch": "chokidar webpack.config.* src/**/*.ts buildScripts/**/*.ts -c \"npm run lint\" --initial --verbose"
},
你基本上给它一个或多个文件选择器,然后使用'-c'参数指定你想要的命令运行当这些文件中的任何一个被更改时。
所以现在您可以 运行 命令:
$ npm run lint:watch
我喜欢 运行 它设置了 --initial 标志,这样它就不会在执行命令之前等待任何文件更改。
如果您使用的是 TypeScript,那么您或许可以使用 tsc -w
来观察变化。
"scripts": {
"start": "tsc -w",
}
我正在使用 webpack 2,如果我的打字稿代码存在编译问题,它会告诉我。但是,我还没有想出一种方法来 运行 tslint 通过它并让它 运行 在 webpack 在开发服务器模式下 运行ning 时检测到的每个更改。
我已经尝试让 tslint-loader 工作,但对于我项目中的每个文件,它只是告诉我:
/src/main.tsNo valid rules have been specified
我是这样使用它的:
rules: [
{
test: /\.ts$/,
enforce: 'pre',
loader: 'tslint-loader',
options: {
configuration: {
configFile: true // I have also tried setting this to "tslint.json"
}
}
},
... more loaders...
还是不开心。
有办法:
- 我正在使用的 tslint-loader 是否会在我每次进行更改时通知我 webpack-dev-server 模式下的 lint 错误?
- 只需从命令行 运行 tslint 并持续 "watch" 我项目中的文件?我正在寻找类似
tslint ./src/**/*.ts -t --force
的内容,但根据 tslint docs. ,还有一个不存在的附加
--watch
标志
我不想 use my editor(例如 VS Code),因为我团队中并不是每个人都使用它。我希望解决方案包含在 webpack 配置或 package.json 脚本中。
谢谢!
就您可以从命令行 运行 编写的脚本而言,您可以尝试使用 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。
更新:
此外,如果您不想在 package.json 文件中添加 "watch" 部分,实际上我刚刚发现了一个我更喜欢的新工具,叫做 chokidar。它允许您在同一行上指定要 运行 的文件选择器和命令。
这是我的更新 package.json:
"scripts": {
"lint:watch": "chokidar webpack.config.* src/**/*.ts buildScripts/**/*.ts -c \"npm run lint\" --initial --verbose"
},
你基本上给它一个或多个文件选择器,然后使用'-c'参数指定你想要的命令运行当这些文件中的任何一个被更改时。
所以现在您可以 运行 命令:
$ npm run lint:watch
我喜欢 运行 它设置了 --initial 标志,这样它就不会在执行命令之前等待任何文件更改。
如果您使用的是 TypeScript,那么您或许可以使用 tsc -w
来观察变化。
"scripts": {
"start": "tsc -w",
}