我正在使用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...
仍然没有快乐。
有一种方法可以:
tslint ./src/**/*.ts -t --force
的内容,但根据tslint docs添加了--watch
标记,但该标记并不存在。我不希望use my editor(例如VS Code),因为我团队中的每个人都不会使用它。我希望解决方案包含在webpack配置或package.json脚本中。
谢谢!
答案 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",
}