You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EJS模板无法输出import语句:Angular组件生成器报错求助

解决Angular组件生成器EJS模板中import语句的编译错误

错误原因

你在EJS模板中写的import { ReactiveFormsModule } '@angular/forms';被EJS引擎当成了Node.js环境下要执行的代码,而非要输出到目标.component.ts文件的文本。由于NX生成器运行在CommonJS模块环境中,直接使用ES模块的import语法会触发“Cannot use import statement outside a module”错误,修改package.json的type字段无法解决这个问题——因为生成器的执行环境不受该配置影响。

修复方案

把需要输出的import语句作为静态文本放在条件判断块中,或者以字符串形式输出,避免EJS引擎解析执行这段代码:

写法一(推荐:直接写静态文本)

<% if( componentType === 'custom form control' ) { %>
import { ReactiveFormsModule } from '@angular/forms';
<% } %>

写法二(字符串形式输出)

如果需要通过变量动态生成部分内容,可以用模板字符串拼接后输出:

<% if( componentType === 'custom form control' ) { %>
<%- `import { ReactiveFormsModule } from '@angular/forms';` %>
<% } %>

额外验证

确保schema中定义的componentType选项值能正确传递到模板上下文,比如在schema.json中确认componentType的枚举值包含"custom form control",且x-prompt的配置能正确收集用户输入并传入模板。

内容的提问来源于stack exchange,提问作者Optiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:12:06