Angular会忽略AOT构建中的文件加载器

问题描述 投票:2回答:1

我目前正在尝试在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"]
}

并且在其dist中包含此文件夹:dist folder containing /docs

没有错误消息或任何内容可以完全删除任何存在降价文件的证据。

我认为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。

angular webpack angular2-aot angular-aot webpack-loader
1个回答
0
投票

问题实际上是我传递数据的方式。

我正在通过.forRoot()方法将其传递给该值。 Angular无法识别它(我认为),并在编译时将其删除。

我通过直接设置令牌来解决它。

© www.soinside.com 2019 - 2024. All rights reserved.