我目前正在尝试在Angular中建立一个文档网站。文档将以markdown编写,并通过ngx-markdown插件显示。在JIT构建上,一切正常,但是AOT构建始终删除markdown文件。
这是我导入文件的方式:
import usageNavbar from '!!raw-loader!./content/usage-navbar.md';
[...]
{
title: 'Installation',
text: usageNavbar
}
[...]
我尝试只使用raw-loader插件,但这只会在AOT上加载null:
{title: "Installation", text: null}
然后我尝试设置webpacks文件加载器,在构建AOT时将输出void 0。
{title: "Installation", text: void 0}
但是JIT看起来像这样:
{
title: 'Installation',
text: _raw_loader_content_usage_navbar_md__WEBPACK_IMPORTED_MODULE_3__["default"]
}
没有错误消息或任何内容可以完全删除任何存在降价文件的证据。
我认为this是Angular使用的webpack配置,但是没有任何迹象表明这种情况。还有this问题,它不是很有帮助。
这是我与@angular-builders/custom-webpack插件一起使用的webpack配置:
module.exports = {
module: {
rules: [
{
test: /\.md$/i,
loader: 'file-loader',
options: {
name: `[name][hash].[ext]`,
outputPath: 'docs/',
emitFile: true
}
}
]
}
};
angular.json:
[...]
"customWebpackConfig": {
"path": "./extra-webpack.config.js",
"mergeStrategies": {
"module.rules": "prepend"
}
}
[...]
我正在使用Angular 8。
问题实际上是我传递数据的方式。
我正在通过.forRoot()方法将其传递给该值。 Angular无法识别它(我认为),并在编译时将其删除。
我通过直接设置令牌来解决它。