在 Angular 4 延迟加载中用模块名称替换块名称

Posted

技术标签:

【中文标题】在 Angular 4 延迟加载中用模块名称替换块名称【英文标题】:Replace chunk name with module name in angular 4 lazy loading 【发布时间】:2018-07-07 20:25:20 【问题描述】:

我正在使用 angular-cli-1.6.3 来捆绑我的项目。 我尝试将延迟加载的块名称重命名为有效的模块名称。但它不起作用。下面给出代码sn-p,


  path: 'lazy',
  loadChildren: './lazy/module#LazyModule?chunkName=LazyModule'

【问题讨论】:

你为什么使用?chunkName=LazyModule?你从哪里弄来的? 我看到了一些样本。但现在我删除了。 【参考方案1】:

你应该使用-nc标志

ng build --aot -nc

ng build --aot --named-chunks

更新 1:基于评论

要删除哈希值,请将--output-hashing 设置为 false,如下所示

ng build --aot --nc --output-hashing=false

Documentation Link

【讨论】:

抛出错误,例如:ERROR in Error: LazyModule?chunkName=LazyModule is not an NgModule 它只是创建了一个类似“module.ebc4664b446ca766a851.chunk.js”的文件。但我希望模块名称作为文件名或自定义名称。做有需要的 模块的名称是什么? 不,它只是像这样创建的“module.ebc4664b446ca766a851.chunk.js”。该怎么办?我正在使用 angular-cli-1.6.3 重命名那个太lazy.module.ts【参考方案2】:
 ng build --namedChunks=true --outputHashing=none --vendorChunk=true
namedChunks 为延迟加载的块使用文件名 output-hashing 定义输出文件名缓存清除哈希模式。 vendorChunk 使用仅包含供应商库的单独捆绑包。

【讨论】:

以上是关于在 Angular 4 延迟加载中用模块名称替换块名称的主要内容,如果未能解决你的问题,请参考以下文章

Angular 6 - 指定延迟加载块的路径

在 Angular 2+ 中用微调器替换加载内容的指令

在wordpress中用data-url延迟加载替换所有src

如何处理 angular2 延迟加载路由失败

Angular2延迟加载模块错误'找不到模块'

有没有办法在 Angular 中延迟加载组件而不是模块?