У меня есть проект TypeScript с Webpack со следующим на package.json
"ts-checker-webpack-plugin": "^0.3.0",
"tslint": "^5.9.1",
"typescript": "^2.8.3",
У меня также есть пользовательское правило TSLint, написанное на TypeScript, которое компилируется tsc
во время сборки веб-пакета, но полученный JS не найден tslint. Выводит следующую ошибку:
Could not find implementations for the following rules specified in the configuration:
custom-check
Я подтвердил, что если я вручную скомпилирую customCheckRule.ts
в JS, то правило будет найдено в webpack и tslint и будет использовано.
Как настроить webpack или ts-checker-webpack-plugin
, чтобы убедиться, что правило скомпилировано и используется в процессе сборки?
Ниже приведена соответствующая часть webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin');
...
module.exports = {
...,
resolve: {
extensions: [".ts", ".tsx", ".js", ".json"]
},
plugins: [
...,
new TsCheckerWebpackPlugin({
tsconfig: path.resolve("tsconfig.json"),
tslint: path.resolve("tslint.json"), // optional
memoryLimit: 512, // optional, maximum memory usage in MB
diagnosticFormatter: "ts-loader", // optional, one of "ts-loader", "stylish", "codeframe"
})
],
module: {
rules: [
// All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'.
{
test: /\.tsx?$/,
use: [{
loader: 'babel-loader'
}, {
loader: 'ts-loader',
options: {
transpileOnly: true
}
}]
},
...
]
}
};