Abstract
Проблемы
- eslint-loader не прекращает компиляцию, и отображается ошибка ts-loader.
- Ошибка ts-loader все еще старая, даже если код TS был переписан.
Процедура
1. Запустить dev-сервер: yarn start
= webpack-dev-server --mode development
пакет. json
{
"name": "eslint-ts-loader-error",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"start": "webpack-dev-server --mode development",
"build": "webpack --mode production"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "2.30.0",
"@typescript-eslint/parser": "2.30.0",
"babel-loader": "8.0.6",
"eslint": "6.8.0",
"eslint-loader": "4.0.2",
"ts-loader": "6.2.2",
"typescript": "3.8.3",
"webpack": "4.33.0",
"webpack-cli": "3.3.4",
"webpack-dev-server": "3.7.1"
}
}
webpack.config. js
const path = require('path');
module.exports = {
entry: './src/main.ts',
output: {
path: path.resolve(__dirname, 'dist/'),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.(ts|tsx)$/,
exclude: /node_modules/,
use: [
{
loader: 'ts-loader',
},
],
},
{
test: /\.(ts|tsx)$/,
enforce: 'pre',
exclude: /node_modules/,
use: [
{
loader: 'eslint-loader',
options: {
failOnError: true,
},
},
],
},
],
},
};
2. Отредактируйте и сохраните файл .ts.
main.ts
const a: string = 100;
console.log(a);
-> Ошибка: ts-loader (как и ожидалось)
ts-loader: Type '100' is not assignable to type 'string'.
3. Отредактируйте и сохраните файл .ts.
const a: string = 100;
// console.log(a);
-> Ошибка: eslint-loader, ts-loader (неожиданно)
eslint-loader: 'a' is assigned a value but never used no-unused-vars
ts-loader: Type '100' is not assignable to type 'string'.
[Ожидается] Когда возникает ошибка в eslint-loader, процесс компиляции остановлен и ошибка ts-loader не отображается.
4. Отредактируйте и сохраните файл .ts.
const a: boolean = 100;
// console.log(a);
-> Ошибка: eslint-loader, ts-loader (неожиданно)
eslint-loader: 'a' is assigned a value but never used no-unused-vars
ts-loader: Type '100' is not assignable to type 'string'.
Ошибка ts-loader не самая последняя, это старый!
Это свидетельство того, что обработка не зависит от ts-loader?
Я не уверен, почему это происходит.
Это что, проблема webpack-dev-server вместо eslint-loader?
Мне нужен кто-то, чтобы мне помочь.
Envirioment
- macOS Catalina v10.15.4
- Node.js v12.16.2
- npm v6.14.4
- пряжа v1.22.4