I am using webpack 2, and it will tell me if there are compile issues with my typescript code. However, I have not figured out a way to run tslint through it and have it run with every change detected by webpack when its running in dev-server mode.
I have tried getting tslint-loader working, but for each file in my project it simply tells me:
/src/main.tsNo valid rules have been specified
I am using it as such:
rules: [
{
test: /\.ts$/,
enforce: 'pre',
loader: 'tslint-loader',
options: {
configuration: {
configFile: true // I have also tried setting this to "tslint.json"
}
}
},
... more loaders...
Still no joy.
It there a way to either:
tslint ./src/**/*.ts -t --force
, but with an additional --watch
flag that doesn't exist according to the tslint docs.I would prefer not to use my editor (such as VS Code), as not everyone on my team uses it. I would prefer that the solution is contained either in the webpack config or the package.json scripts.
Thank you!
tslint accepts the following command-line options: -c, --config: The location of the configuration file that tslint will use to determine which rules are activated and what options to provide to the rules. If no option is specified, the config file named tslint.
When using the CLI or many third-party tools, a file named tslint. json or tslint. yaml is used to configure which rules get run and each of their options.
By default, GoLand uses the TSLint package from the project node_modules folder and the tslint. json configuration file from the folder where the current file is stored. If no tslint. json is found in the current file folder, GoLand will look for one in its parent folders up to the project root.
As far as a script you can run from the command line is concerned, you can try using npm-watch: https://www.npmjs.com/package/npm-watch.
I've used it to successfully do what you're talking about. Here's what I did:
Installed npm-watch to my project:
$ npm install npm-watch --save-dev
Added the following to my package.json file:
"watch": {
"lint": "src/main.ts"
},
"scripts": {
"lint": "tslint src/**/*.ts -t verbose",
"watch": "npm-watch"
},
I figure npm-watch is a good tool for giving watch functionality to tools that don't have it, like tslint.
Update:
Also, if you don't want to add a "watch" section to your package.json file, I've actually just discovered a new tool I like even better called chokidar. It allows you to specify the file selectors and command you want to run all on the same line.
Here's my updated package.json:
"scripts": {
"lint:watch": "chokidar webpack.config.* src/**/*.ts buildScripts/**/*.ts -c \"npm run lint\" --initial --verbose"
},
You basically give it one or more file selectors, and then use the '-c' parameter to specify the command you want run when any of those files are changed.
So now you can just run the command:
$ npm run lint:watch
I like to run it with the --initial flag set, so it doesn't wait for any files to change before executing the command.
If you are using TypeScript, then you can probably use tsc -w
to watch the changes.
"scripts": {
"start": "tsc -w",
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With