Не удалось развернуть функции Firebase для @ ng-toolkit / universal - PullRequest
0 голосов
/ 12 января 2019

Я создаю приложение angular 7 и использую angular universal для рендеринга на стороне сервера, все отлично работает на локальном компьютере, но когда я пытаюсь развернуть приложение на firebase, журналы функций firebase показывают следующую ошибку -

{"@type":"type.googleapis.com/google.cloud.audit.AuditLog","status":{"code":3,"message":"Build failed: exit status 254\nnpm ERR! addLocal Could not install /workspace/node_modules/@ng-toolkit/universal/@ng-toolkit/_utils@1.1.50\nnpm WARN deprecated bugsnag@2.4.3: All projects should upgrade to our universal JS notifier: \"@bugsnag/js\". See https://github.com/bugsnag/bugsnag-js/blob/master/UPGRADING.md for more details.\nnpm ERR! Linux 4.15.0-1026-gcp\nnpm ERR! argv \"/nodejs/bin/node\" \"/nodejs/bin/npm\" \"--global-style\" \"--production\" \"--fetch-retries=5\" \"--fetch-retry-factor=2\" \"--fetch-retry-mintimeout=1000\" \"install\" \"/workspace\"\nnpm ERR! node v6.14.0\nnpm ERR! npm  v3.10.10\nnpm ERR! path /workspace/node_modules/@ng-toolkit/universal/@ng-toolkit/_utils@1.1.50\nnpm ERR! code ENOENT\nnpm ERR! errno -2\nnpm ERR! syscall open\n\nnpm ERR! enoent ENOENT: no such file or directory, open '/workspace/node_modules/@ng-toolkit/universal/@ng-toolkit/_utils@1.1.50'\nnpm ERR! enoent ENOENT: no such file or directory, open '/workspace/node_modules/@ng-toolkit/universal/@ng-toolkit/_utils@1.1.50'\nnpm ERR! enoent This is most likely not a problem with npm itself\nnpm ERR! enoent and is related to npm not being able to find a file.\nnpm ERR! enoent \n\nnpm ERR! Please include the following file with any support request:\nnpm ERR!     /workspace/npm-debug.log\n"},"authenticationInfo":.....

Настройки в функциях / package.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "@angular/animations": "~7.0.0",
    "@angular/common": "~7.0.0",
    "@angular/compiler": "~7.0.0",
    "@angular/core": "~7.0.0",
    "@angular/fire": "^5.1.1",
    "@angular/forms": "~7.0.0",
    "@angular/http": "~7.0.0",
    "@angular/platform-browser": "~7.0.0",
    "@angular/platform-browser-dynamic": "~7.0.0",
    "@angular/platform-server": "~7.0.0",
    "@angular/router": "~7.0.0",
    "@ng-toolkit/universal": "^1.1.50",
    "@nguniversal/express-engine": "~7.0.0",
    "@nguniversal/module-map-ngfactory-loader": "~7.0.0",
    "bootstrap": "^4.1.3",
    "bootswatch": "^4.1.3",
    "core-js": "^2.5.4",
    "cors": "~2.8.4",
    "firebase": "^5.7.2",
    "font-awesome": "^4.7.0",
    "jquery": "^3.3.1",
    "rxjs": "~6.3.3",
    "ts-loader": "4.2.0",
    "webpack-cli": "^3.1.2",
    "zone.js": "~0.8.26",
    "@nguniversal/common": "~7.0.0",
    "express": "~4.16.3",
    "firebase-admin": "~6.0.0",
    "firebase-functions": "^2.1.0"
  },
  "private": true
}

Как я могу исправить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Вы можете использовать Rendertron для рендеринга на стороне сервера, для этого НЕ требуется Angular Universal или каких-либо странных хаков. Просто сфокусируйтесь на разработке своего углового приложения.

https://angularfirebase.com/lessons/seo-angular-part-1-rendertron-meta-tags/

0 голосов
/ 12 января 2019

Проблемы, похоже, связаны с зависимостью ng-toolkit / universal. Зависимость - это клиент, который помогает вам настроить шаблонный проект, и на их странице github (https://github.com/maciejtreder/ng-toolkit#readme) я вижу, что зависимость должна быть установлена ​​глобально, а не поставляться с самим приложением. Переместите зависимость в devDependency в пакете. json или просто установите его глобально и удалите из package.json

...