角度npm运行serve:ssr失败

问题描述 投票:0回答:1

当我运行npm run serve:ssr时,终端会出现很多缩小字符,我认为这会失败,并出现此错误:

Error: ENOENT: no such file or directory, open 'google/protobuf/api.proto'
at Object.openSync (fs.js:458:3)
at Object.readFileSync (fs.js:360:35)
at fetch (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:1481457)
at Root.load (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:1481863)
at Root.loadSync (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:1482043)
at Object.loadSync (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:2045651)
at Object.8ZNE (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:1496436)
at __webpack_require__ (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:317)
at Object.BYZf (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:1574620)
at __webpack_require__ (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:317) {
 errno: -4058,
 syscall: 'open',
 code: 'ENOENT',
 path: 'google/protobuf/api.proto'
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] serve:ssr: `node dist/site-vitrine-tempora/server/main.js`
npm ERR! Exit status 1

日志错误:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'serve:ssr'
1 verbose cli ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preserve:ssr', 'serve:ssr', 'postserve:ssr' ]
5 info lifecycle [email protected]~preserve:ssr: [email protected]
6 info lifecycle [email protected]~serve:ssr: [email protected]
7 verbose lifecycle [email protected]~serve:ssr: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~serve:ssr: PATH: C:\Program Files\nodejs           \node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\site-angular-tempora\site-vitrine-  tempora\node_modules\.bin;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Python27\;C:\Python27\Scripts;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Users\Pascal\AppData\Local\Microsoft\WindowsApps;;C:\Users\Pascal\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Pascal\AppData\Roaming\npm
 9 verbose lifecycle [email protected]~serve:ssr: CWD: C:\site-angular-tempora\site-vitrine-tempora
 10 silly lifecycle [email protected]~serve:ssr: Args: [ '/d /s /c', 'node dist/site-vitrine-tempora/server/main.js' ]
 11 silly lifecycle [email protected]~serve:ssr: Returned: code: 1  signal: null
 12 info lifecycle [email protected]~serve:ssr: Failed to exec serve:ssr script
 13 verbose stack Error: [email protected] serve:ssr: `node dist/site-vitrine-tempora/server/main.js`
 13 verbose stack Exit status 1
 13 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
 13 verbose stack     at EventEmitter.emit (events.js:310:20)
 13 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
 13 verbose stack     at ChildProcess.emit (events.js:310:20)
 13 verbose stack     at maybeClose (internal/child_process.js:1021:16)
 13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
 14 verbose pkgid [email protected]
 15 verbose cwd C:\site-angular-tempora\site-vitrine-tempora
 16 verbose Windows_NT 10.0.18363
 17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "serve:ssr"
 18 verbose node v12.16.3
 19 verbose npm  v6.14.4
 20 error code ELIFECYCLE
 21 error errno 1
 22 error [email protected] serve:ssr: `node dist/site-vitrine-tempora/server/main.js`
 22 error Exit status 1
 23 error Failed at the [email protected] serve:ssr script.
 23 error This is probably not a problem with npm. There is likely additional logging output above.
 24 verbose exit [ 1, true ]

Package.json:

 {
   "name": "site-vitrine-tempora",
   "version": "0.0.0",
  "scripts": {
  "ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"dev:ssr": "ng run site-vitrine-tempora:serve-ssr",
"serve:ssr": "node dist/site-vitrine-tempora/server/main.js",
"build:ssr": "ng build --prod && ng run site-vitrine-tempora:server:production",
"prerender": "ng run site-vitrine-tempora:prerender",
"postinstall": "node patch-iconv.js && node patch-ng-devkit.js"
   },
    "private": true,
    "dependencies": {
"@angular/animations": "~9.1.7",
"@angular/cdk": "^9.2.4",
"@angular/common": "~9.1.7",
"@angular/compiler": "~9.1.7",
"@angular/core": "~9.1.7",
"@angular/fire": "^6.0.0",
"@angular/forms": "~9.1.7",
"@angular/localize": "^9.1.7",
"@angular/material": "^9.2.4",
"@angular/platform-browser": "~9.1.7",
"@angular/platform-browser-dynamic": "~9.1.7",
"@angular/platform-server": "^9.1.7",
"@angular/router": "~9.1.7",
"@fortawesome/angular-fontawesome": "^0.6.1",
"@fortawesome/fontawesome-svg-core": "^1.2.28",
"@fortawesome/free-solid-svg-icons": "^5.13.0",
"@ng-bootstrap/ng-bootstrap": "^6.1.0",
"@nguniversal/express-engine": "^9.1.1",
"angular-froala-wysiwyg": "^3.1.1-1",
"bootstrap": "^4.5.0",
"express": "^4.17.1",
"firebase": "^7.14.4",
"rxjs": "~6.5.4",
"tslib": "^1.10.0",
"zone.js": "~0.10.2"
   },
    "devDependencies": {
"@angular-builders/custom-webpack": "^9.1.0",
"@angular-devkit/architect": "~0.900",
"@angular-devkit/build-angular": "~0.901.6",
"@angular/cli": "~9.1.6",
"@angular/compiler-cli": "~9.1.7",
"@angular/language-service": "~9.1.7",
"@nguniversal/builders": "^9.1.1",
"@types/express": "^4.17.6",
"@types/jasmine": "~3.5.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.12.41",
"brotli-webpack-plugin": "^1.1.0",
"codelyzer": "^5.1.2",
"compression-webpack-plugin": "^4.0.0",
"firebase-tools": "^8.0.0",
"fuzzy": "^0.1.3",
"inquirer": "^6.2.2",
"inquirer-autocomplete-prompt": "^1.0.1",
"jasmine-core": "~3.5.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.3.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.2",
"protractor": "~5.4.3",
"ts-node": "~8.3.0",
"tslint": "~5.18.0",
"typescript": "~3.7.5"
   }
  }

Angular.json:

 {
   "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
   "version": 1,
   "newProjectRoot": "projects",
   "projects": {
     "site-vitrine-tempora": {
     "projectType": "application",
     "schematics": {
        "@schematics/angular:component": {
           "style": "scss"
        }
      },
      "root": "",
      "sourceRoot": "src",
     "prefix": "app",
     "architect": {
        "build": {
          "builder": "@angular-builders/custom-webpack:browser",
          "options": {
             "customWebpackConfig": {
               "path": "./custom-webpack.config.js"
            },
             "outputPath": "dist/site-vitrine-tempora/browser",
            "index": "src/index.html",
           "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.app.json",
           "aot": true,
           "assets": [
              "src/favicon.ico",
              "src/assets"
        ],
        "styles": [
          "src/styles.scss",
          "node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
          "./node_modules/froala-editor/css/froala_editor.pkgd.min.css",
          "./node_modules/froala-editor/css/froala_style.min.css"
        ],
        "scripts": []
      },
      "configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true,
          "budgets": [
            {
              "type": "initial",
              "maximumWarning": "2mb",
              "maximumError": "5mb"
            },
            {
              "type": "anyComponentStyle",
              "maximumWarning": "6kb",
              "maximumError": "10kb"
            }
          ]
        }
      }
    },
    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "site-vitrine-tempora:build"
      },
      "configurations": {
        "production": {
          "browserTarget": "site-vitrine-tempora:build:production"
        }
      }
    },
    "extract-i18n": {
      "builder": "@angular-devkit/build-angular:extract-i18n",
      "options": {
        "browserTarget": "site-vitrine-tempora:build"
      }
    },
    "test": {
      "builder": "@angular-devkit/build-angular:karma",
      "options": {
        "main": "src/test.ts",
        "polyfills": "src/polyfills.ts",
        "tsConfig": "tsconfig.spec.json",
        "karmaConfig": "karma.conf.js",
        "assets": [
          "src/favicon.ico",
          "src/assets"
        ],
        "styles": [
          "src/styles.scss"
        ],
        "scripts": []
      }
    },
    "lint": {
      "builder": "@angular-devkit/build-angular:tslint",
      "options": {
        "tsConfig": [
          "tsconfig.app.json",
          "tsconfig.spec.json",
          "e2e/tsconfig.json"
        ],
        "exclude": [
          "**/node_modules/**"
        ]
      }
    },
    "e2e": {
      "builder": "@angular-devkit/build-angular:protractor",
      "options": {
        "protractorConfig": "e2e/protractor.conf.js",
        "devServerTarget": "site-vitrine-tempora:serve"
      },
      "configurations": {
        "production": {
          "devServerTarget": "site-vitrine-tempora:serve:production"
        }
      }
    },
    "deploy": {
      "builder": "@angular/fire:deploy",
      "options": {}
    },
    "server": {
      "builder": "@angular-devkit/build-angular:server",
      "options": {
        "outputPath": "dist/site-vitrine-tempora/server",
        "main": "server.ts",
        "tsConfig": "tsconfig.server.json"
      },
      "configurations": {
        "production": {
          "outputHashing": "media",
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ],
          "sourceMap": false,
          "optimization": true
        }
      }
    },
    "serve-ssr": {
      "builder": "@nguniversal/builders:ssr-dev-server",
      "options": {
        "browserTarget": "site-vitrine-tempora:build",
        "serverTarget": "site-vitrine-tempora:server"
      },
      "configurations": {
        "production": {
          "browserTarget": "site-vitrine-tempora:build:production",
          "serverTarget": "site-vitrine-tempora:server:production"
        }
      }
    },
    "prerender": {
      "builder": "@nguniversal/builders:prerender",
      "options": {
        "browserTarget": "site-vitrine-tempora:build:production",
        "serverTarget": "site-vitrine-tempora:server:production",
        "routes": [
          "/"
        ]
      },
      "configurations": {
        "production": {}
      }
    }
  }
}
    },
   "defaultProject": "site-vitrine-tempora"
 }

我已经尝试解决这一问题已有几天了,我已经尝试了很多方法,但是没有任何效果。我也检查了Github,但是它总是归结为这个问题。我已经删除了一些依赖项,因为我认为thery是对脚本进行错误处理的依赖项,但是它并不能解决任何问题。

很遗憾,由于Angular网站上的Universal Tutorial看起来如此简单,所以我无法做到这一点。

任何帮助表示感谢

欢呼声

编辑

我确实尝试将Firebase / firesstore添加为angular.json中的外部依赖项,但是现在,我有另一个错误

  ReferenceError: window is not defined
at Object.bzdy (C:\site-angular-tempora\site-vitrine-tempora\dist\site-     vitrine-tempora\server\main.js:1:2975230)
at __webpack_require__ (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:317)
at Object.zWQT (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:5642533)
at __webpack_require__ (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:317)
at Object.vY5A (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:5421272)
at __webpack_require__ (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:317)
at Object.ZAI4 (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:2954266)
at __webpack_require__ (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:317)
at Object.24aS (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:1013630)
at __webpack_require__ (C:\site-angular-tempora\site-vitrine-tempora\dist\site-vitrine-tempora\server\main.js:1:317
angular server-side-rendering angular-universal universal
1个回答
0
投票

将以下代码段添加到您的angular.json中

"server": {
  "builder": "@angular-devkit/build-angular:server",
    "options": {
      "outputPath": "dist/angprod/server",
      "main": "server.ts",
      "tsConfig": "tsconfig.server.json",
      "externalDependencies": ["@firebase/firestore"]
  }

请参阅链接以获取更多详细信息:https://github.com/angular/angularfire/issues/2424#issuecomment-619239036

注意:根据您的项目添加outputPath。

© www.soinside.com 2019 - 2024. All rights reserved.