javascript - Angular-10 你必须传入一个 NgModule 或 NgModuleFactory 才能被引导
问题描述
为了使我的应用程序通用,我需要导入@ng-toolkit/universal
. 但是,此安装不适用于 10 的角度版本。这是project.ts
因为node_modules/schematics/angular
.
要解决此问题,请导入支持的最新版本(9.1.15),@ng-toolkit/universal
然后@ng-toolkit/universal package
成功安装。
npm run build:prod
然后我使用命令构建我的项目。它创建没有上升问题的构建。接下来我使用npm run server
命令运行项目。它也成功运行。
当我在浏览器中运行 URL 时,它显示如下错误
错误:您必须传入 NgModule 或 NgModuleFactory 才能在 View.render (C:\Users) 的 View.engine (C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:46927:23) \dell\rithicka_learning\testeee\module\dist\server.js:135990:8) 在 tryRender (C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:132040:10) 在 Function.render ( C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:131992:3) 在 ServerResponse.render (C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:143601:7 ) 在 C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:137:9 在 Layer.handle [as handle_request] (C:\Users\dell\rithicka_learning\testeee\module\dist\server. js:135418:5) 在下一个 (C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:134339:13) 在 Route.dispatch (C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:134314:3) 在 Layer.handle [as handle_request] (C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:135418 :5)
该package.json
文件如下:
{
"name": "module",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"compile:server": "webpack --config webpack.server.config.js --progress --colors",
"serve:ssr": "node local.js",
"build:ssr": "npm run build:client-and-server-bundles && npm run compile:server",
"build:client-and-server-bundles": "ng build --prod && ng run module:server:production",
"server": "node local.js",
"build:prod": "npm run build:ssr"
},
"private": true,
"dependencies": {
"@angular-devkit/schematics": "^9.1.15",
"@angular/animations": "~10.2.0",
"@angular/common": "~10.2.0",
"@angular/compiler": "~10.2.0",
"@angular/core": "~10.2.0",
"@angular/forms": "~10.2.0",
"@angular/platform-browser": "~10.2.0",
"@angular/platform-browser-dynamic": "~10.2.0",
"@angular/platform-server": "~10.2.0",
"@angular/router": "~10.2.0",
"@ng-toolkit/universal": "^7.1.0",
"@nguniversal/common": "0.0.0",
"@nguniversal/express-engine": "^10.1.0",
"@nguniversal/module-map-ngfactory-loader": "0.0.0",
"@schematics/angular": "^9.1.15",
"express": "^4.15.2",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1002.3",
"@angular/cli": "~10.2.0",
"@angular/compiler-cli": "~10.2.0",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.0.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"protractor": "~7.0.0",
"ts-loader": "^5.2.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "~4.0.2",
"webpack-cli": "^3.1.0"
}
}
解决方案
使用以下命令安装依赖项,如下所示:
npm i @nguniversal/express-engine@next @nguniversal/module-map-ngfactory-loader@next
安装后,在 tsconfig.server.json > angularCompilerOptions 中添加以下属性
"enableIvy":false
并在 angular.json 文件 > 服务器 > 选项中,添加以下代码段:
"bundleDependencies":"none"
然后就可以构建项目了。构建将成功运行。
推荐阅读
- python - 会话和并行性在 TF2.0 中如何工作?
- javascript - 我正在尝试使用两个按钮计算按钮点击的总数并将其显示在文本区域中
- javascript - 将对象的值数字转换为字符串无法正常工作
- python - 填充缺失值的数据框(熊猫)
- postgresql - 让 LIKE 搜索使用 citext 表达式的索引
- excel - 删除 A 列或 B 列中的单元格为空的行
- go - 使用给定数据创建一个 JSON 数据作为 map[string] 接口
- azure - 如何基于孤盘创建快照
- python - 如何分隔列表中的文本?
- powershell - 属性未出现在 Get-Member cmdlet 中,并且在放入 . 符号