我们最近刚刚将一个 Angular 项目从 Angular 1.5 移植到 11。部分代码使用gulp-preprocess和代码和模板中的条件语句有条件地编译(为特殊客户丢弃了不同的部分)
不幸的是,开箱即用的东西不再可用于构建 Angular11。目前我设法使用另一个预处理器模块webpack-preprocessor-loader并结合ngx-build-plus我为 webpack 创建了以下插件配置:
exports.default = {
pre: function (options) {
},
config: function (cfg) {
const rule = {
test: /\.ts$/,
use: [
{
loader: 'webpack-preprocessor-loader',
options: {
params: {
testParam: true,
}
}
}
]
}
cfg.module.rules = [rule, ...cfg.module.rules];
return cfg;
},
post: function (options) {
}
};
如果我现在运行 ng serve 或构建 .ts 文件中的正确部分,则会更改。
我现在的问题是,我无法使用这种方法访问组件(.html 文件)的模板。Angular 已经将它们编译到它们的组件中。
是否有我可以在 Angular 中访问的钩子或构建步骤,这可以让我在模板编译成 .ts 组件文件之前在模板上运行预处理器?