未捕获的语法错误:无法在模块外部使用“import.meta” - Nx Monorepo

Ste*_*fan 8 monorepo angular nrwl

我创建了一个 Angular nx monorepo 并创建了两个应用程序。当我启动其中任何一个时,我收到以下错误:

错误信息

我已经看到一些 stackoverflow 帖子,建议将“type”:“module”添加到 package.json 中。但由于它是一个 monorepo,所有应用程序仅使用一个 package.json。

微前端:

在此输入图像描述

gre*_*nik 8

这个问题已经被问过,答案就在这里

你只需要调整你的

module.exports = {
    output: {
        uniqueName: "MyProj",
        publicPath: "auto",
        scriptType: 'text/javascript'
    }
Run Code Online (Sandbox Code Playgroud)

包括scriptType: 'text/javascript'


alp*_*rim 7

对于新版本NX的后代:

在本地以开发模式提供模块联合应用程序时,控制台将输出错误,无法在模块外部使用 import.meta,并且来自 styles.js 的脚本。这是一个已知的错误输出,但据我们的测试显示,它实际上不会导致任何损坏。这是因为 Angular 编译器使用 defer 将 styles.js 文件附加到 script 标签中的 index.html 中。

它需要附加 type=module,但 Angular 无法进行此更改,因为它破坏了 HMR。它们也没有提供任何方法来挂钩该过程,以便我们自己修补它。

好消息是错误不会传播到生产环境,因为样式被编译为 CSS 文件,因此没有错误的 JS 来记录错误。

值得强调的是,我们的测试中没有发现任何实际错误或损坏。