【问题标题】:Angular-10 You must pass in a NgModule or NgModuleFactory to be bootstrappedAngular-10 你必须传入一个 NgModule 或 NgModuleFactory 才能被引导
【发布时间】:2021-09-14 04:18:15
【问题描述】:

为了使我的应用具有通用性,我需要导入 @ng-toolkit/universal。 但是,此安装不适用于 10 的角度版本。 这是因为node_modules/schematics/angular 中缺少project.ts 文件。

为解决此问题,导入支持@ng-toolkit/universal 的最新版本(9.1.15),然后成功安装@ng-toolkit/universal package

然后我使用 npm run build:prod 命令构建我的项目。它创建没有上升问题的构建。接下来我使用 npm run server 命令运行该项目。它也运行成功。

当我在浏览器中运行 URL 时,它显示如下错误

错误:你必须传入一个 NgModule 或 NgModuleFactory 才能被引导 在 View.engine (C:\Users\dell\rithicka_learning\testeee\module\dist\server.js:46927:23) 在 View.render (C:\Users\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"
  }
}

【问题讨论】:

    标签: javascript node.js angular


    【解决方案1】:

    使用以下命令安装依赖项:

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

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

    "enableIvy":false
    

    并在 angular.json 文件 > server > options 中,添加以下 sn-p:

    "bundleDependencies":"none"
    

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

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 2018-07-25
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多