有没有人知道为什么当我ngc
我的项目时,项目中使用的延迟加载的模块没有被编译/生成?
这是延迟加载的路线:
children: [
…
{
path: "my-apps",
loadChildren: "carbonldp-panel/my-apps/my-apps.module#MyAppsModule",
},
]
这是输出,没有生成my-apps.module.ngfactory.ts
文件:
ONLY 生成它的方法是将其隐藏在路由文件中,但这不是延迟加载:
import { MyAppsModule } from "carbonldp-panel/my-apps/my-apps.module”;
答案 0 :(得分:2)
Rollup需要一个入口点,并依赖于import
和export
语句进行树木抖动。
延迟加载会产生问题,因为它无法仅通过import/export
语句进行跟踪。
它并不理想,但我建议为构建目的创建一个单独的条目文件,其中包括主应用程序和所有延迟加载的模块:
<强> entry.ts 强>
import './main.ts';
import { MyAppsModule } from "carbonldp-panel/my-apps/my-apps.module";
<强> rollup.config.js 强>
export default {
entry: 'entry.js',
...
};
<强> [编辑] 强>
我注意到您已将模块部署到node_modules
文件夹,现在您正尝试在AOT版本中重新使用该模块。
如果它没有为您的模块生成必要的工厂文件,我会检查carbondIdp-panel
模块以确保您的延迟加载模块的.metadata
文件是作为构建的一部分生成的。 NGC需要元数据文件来生成工厂。
我希望这有帮助!