Angular 13 не работает с @nestjs/ng-universal, но корректно работает с @nguniversal/express-engine

Недавно я установил angular 13 и попытался установить @nestjs / ng-universal с помощью

нг добавить @nestjs / ng-универсальный

который работал для предыдущих версий angular, но я получаю пакет успешно установлен, а затем эта ошибка:

      *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.*

И полная ошибка в файле 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)

Когда я смотрю на файлы проекта angular, ничего не изменилось, и файлы сервера не настроены. Я попытался создать разные проекты angular, чтобы убедиться, что мой проект angular был выбран неправильно, затем снова добавил ng add @nestjs / ng-universal и все равно получил тот же результат.

Чтобы проверить это, я попытался установить @ nguniversal / express-engine с помощью команды ng add, и он установился правильно, без проблем, и все было настроено правильно.

Что-то изменилось в процессе установки; Я делаю что-то неправильно; или Angular 13 еще не поддерживается?

Пожалуйста помоги.

3 ответа

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"
    }

тогда ng add @nestjs/ng-universalдолжен работать нормально, и при обновлении пакетов он должен отменить изменения

С Angular 13 «ng add @nestjs/ng-universal» создает ошибку. Потому что он использует последнюю версию библиотеки, то есть 6-ю версию. Вместо этого вы можете использовать «ng add @nestjs/ng-universal@5 », и он отлично работает.

Я сделал, как AFAIK проинструктировал.

  1. Я создал чистый угловой проект.

  2. Я запускаю npm i --save @nguniversal/express-engine

  3. Я пошел в node_modules/@nguniversal/express-engine/package.json и:

    • удален "тип": "модуль" и
    • добавил в экспорт следующее:
          "./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"
    }
  1. После этого я запускаю ng add @nestjs/ng-universal . На этот раз все по-другому, и все устанавливается правильно, и файлы сервера устанавливаются правильно.
  2. Затем я запускаю npm run dev:ssr и получаю следующую ошибку:
      ./node_modules/@nestjs/common/utils/load-package.util.js:9:39-59 - Warning: Critical dependency: the request of a dependency is an expression

./node_modules/@nestjs/core/helpers/load-adapter.js:9:39-63 - Warning: Critical dependency: the request of a dependency is an expression

./node_modules/@nestjs/core/helpers/optional-require.js:6:39-59 - Warning: Critical dependency: the request of a dependency is an expression



Compiled successfully.
(node:18704) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)

[Nest] 18704  - 11/25/2021, 1:34:15 PM     LOG [NestFactory] Starting Nest application...

[Nest] 18704  - 11/25/2021, 1:34:15 PM     LOG [InstanceLoader] AppModule dependencies initialized +37ms

[Nest] 18704  - 11/25/2021, 1:34:15 PM     LOG [InstanceLoader] AngularUniversalModule dependencies initialized +0ms

[Nest] 18704  - 11/25/2021, 1:34:15 PM     LOG [NestApplication] Nest application successfully started +7ms

connect ECONNREFUSED 127.0.0.1:51861

Как я решу это?

Другие вопросы по тегам