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 проинструктировал.
Я создал чистый угловой проект.
Я запускаю npm i --save @nguniversal/express-engine
Я пошел в 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"
}
- После этого я запускаю ng add @nestjs/ng-universal . На этот раз все по-другому, и все устанавливается правильно, и файлы сервера устанавливаются правильно.
- Затем я запускаю 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
Как я решу это?