Я пытаюсь реализовать пользовательскую конфигурацию веб-пакета для моего приложения Angular 7, которое перезаписывает загрузчик машинописного текста, чтобы я мог использовать customerTransformer (см. ts-loader / getCustomTransformer или awesome-typescript-loader / getCustomTransformer )
в конвейере компилятора TypeScript.
Поскольку команда ng eject
невозможна начиная с Angular 6, я использую следующий подход https://codeburst.io/customizing-angular-cli-6-build-an-alternative-to-ng-eject-a48304cd3b21 для использования пользовательской конфигурации веб-пакета. Я использую это extra-webpack.config.js
.
const methodOverloading = require("../../../built/transformer/method-overloading").methodOverloading;
module.exports = {
module: {
rules: [
{
test: /\.ts/,
loader: 'ts-loader', // or 'awesome-typescript-loader'
exclude: /node_modules/,
options: {
getCustomTransformers: (program) => ({
before: [methodOverloading(program)]
}),
}
}
]
}
};
Когда я запускаю npm run start
или npm run build
, он запускается без ошибок, а также выполняет код из customTransformer. Но окончательная сборка не включает преобразования из customTransformer.
Я подозреваю, что Angular 6/7 использует другой способ компиляции своего TypeScript. Но я не знаю, что это за путь (пробовал ts-loader и awesome-typescript-loader). Также я не знаю, где я могу увидеть использованный webpack.config из Angular. Это помогло бы, потому что тогда я мог бы использовать ту же конфигурацию, что и Angular для extra-webpack.config.js
. Как мне переписать загрузчик машинописного текста в Angular 6/7?
Я также пробовал разные стратегии слияния , но это также не удалось.