Angular 8-懒加载模块: 错误 TS1323: 只有当 “-module” 标志为 “commonjs” 或 “esnext” 时,才支持动态导入

共2个回答, 标签: angular typescript module angular8

当我将 Angular 从 7 更新到 8 Angular 时,懒加载模块会出错

我已经尝试了角升级指南中的选项

做了以下更改:

之前

../功能/路径/样本-
模块 # sametagmodule'

之后

Loadchild: () => import ('./功能/路径/示例-
然后 (m => m.CreateLinksModule)

错误 TS1323: 只有当 “-module” 标志是 “commonjs” 或 “esnext” 时,才支持动态导入。

第1个答案

您正在使用动态导入,因此必须像这样更改 tsconfig.json,以便将代码定位为esnext module

{
“CompileOnSave": 虚假,
【编译选项】: {
“BaseUrl”: “./”,
“OutDir”: “./dist/out-tsc”,
“SourceMap": 没错,
【声明】: 假的,
“模块”: “esnext”,//添加此行
“模块解决方案”: “节点”,
“EmitDecoratorMetadata 元数据”: true,
“实验装饰师”: 真的,
"进口商": 真的,
【目标】: 【 es2015 】,
【 TypeRoots 】: 【
“Node_modules/@ 类型"
],
【 Lib 】: 【
"Es2018",
“Dom”
]
}
}

还要确保检查 tsconfig.app.json 没有这样的模块和目标配置

{
“扩展”: “./tsconfig.json”,
【编译选项】: {
“OutDir”: “./out-tsc/app”,
【类型】: 【
},
【包括】: 【
"Src/* */*.ts"
],
【排除】: 【
"Src/test.ts",
"Src/* */*.spec.ts"
]
}
第2个答案

只需添加到 @ Tony 的 anwser,您可能还需要在 tsconfig.app.json 中执行同样的操作 (更改为 “模块”: “esnext”)。在我的例子中,tsconfig.json 已经使用 esnext 作为模块,但是 tsconfig.app.json 仍然使用 es2015,这导致了这个错误。

相关问题

从 angularcli 中的 HTTP Get 请求检索到的数组的范围 如何将角2前置快速 JS 变量导出到角2分量? Angular block web 请求使用的服务器吗? 在类实例中跟踪状态 如何解决: “找不到规则 '@ typescript-eslint/一致类型断言' 的定义” 如何将月份值从一个日期对象复制到另一个日期对象?[复制] Angular 8-懒加载模块: 错误 TS1323: 只有当 “-module” 标志为 “commonjs” 或 “esnext” 时,才支持动态导入 如何在 Android 项目中使用一个 jar 文件库的两个不同版本? 调用重试超过异常,而 ng 构建 我应该如何在 Angular 8 中使用 @ ViewChild 的新静态选项?