Angular 13 不能与 @nestjs/ng-universal 一起使用,但可以与 @nguniversal/express-engine 一起正常工作

jym*_*yms 4 express angular-universal nestjs angular13

我最近安装了 Angular 13 并尝试安装 @nestjs/ng-universal

ng 添加@nestjs/ng-universal

这适用于以前的角度版本,但我成功安装了软件包,然后出现此错误:

*An unhandled exception occurred: Package subpath './schematics/utils' is not defined by 
"exports" in C:\Users\ADMIN\kiambol\node_modules@nguniversal\express-engine\package.json
See "C:\Users\ADMIN\AppData\Local\Temp\ng-1gySjP\angular-errors.log" for further 
details.*
Run Code Online (Sandbox Code Playgroud)

angular-errors.log 文件中的完整错误是:

[error] Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './schematics/utils' is not defined by "exports" in C:\Users\ADMIN\kiambol\node_modules@nguniversal\express-engine\package.json
at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
at resolveExports (internal/modules/cjs/loader.js:449:36)
at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
at Function.Module._load (internal/modules/cjs/loader.js:745:27)
at Module.require (internal/modules/cjs/loader.js:961:19)
at require (internal/modules/cjs/helpers.js:92:18)
at Object. (C:\Users\ADMIN\kiambol\node_modules@nestjs\ng-universal\schematics\install\index.js:15:17)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
Run Code Online (Sandbox Code Playgroud)

当我查看角度项目文件时,没有任何更改,并且服务器文件未设置。我尝试创建不同的角度项目只是为了看看我的角度项目是否没有正确选择,然后再次添加ng add @nestjs/ng-universal ,仍然得到相同的结果。

为了测试一下,我尝试使用ng add命令安装@nguniversal/express-engine,并且安装正确,没有任何问题,并且所有内容都设置正确。

安装过程中有什么变化吗?难道我做错了什么; 或者 Angular 13 还不支持?

请帮忙。

小智 5

AFAIK 我认为这是一个侧面错误@nestjs/ng-universal

作为一个快速而肮脏的解决方案,首先安装@nguniversal/express-engine 然后转到node_modules/@nguniversal/express-engine/package.json

  • 消除"type": "module"
  • 加入exports: ​
    "./schematics/utils": {
      "types": "./schematics/utils/index.d.ts",
      "esm2020": "./schematics/utils/index.js",
      "es2020": "./schematics/utils/index.js",
      "es2015": "./schematics/utils/index.js",
      "node": "./schematics/utils/index.js",
      "default": "./schematics/utils/index.js"
    }

Run Code Online (Sandbox Code Playgroud)

然后ng add @nestjs/ng-universal应该可以正常工作,并且通过更新软件包应该可以恢复更改