首页 > 解决方案 > 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"
  }
}

标签: javascriptnode.jsangular

解决方案


使用以下命令安装依赖项,如下所示:

npm i @nguniversal/express-engine@next @nguniversal/module-map-ngfactory-loader@next

安装后,在 tsconfig.server.json > angularCompilerOptions 中添加以下属性

"enableIvy":false

并在 angular.json 文件 > 服务器 > 选项中,添加以下代码段:

"bundleDependencies":"none"

然后就可以构建项目了。构建将成功运行。


推荐阅读