Гнездо Js Angular Универсальный не работает - ошибка включения автономного сохранения - PullRequest
1 голос
/ 13 апреля 2020

Я получаю эту ошибку при использовании последней версии angular, angularfire и angular universal.

нг подача

Нет проблем с обычной подачей ...

нг add @ nestjs / ng-universal

Добавлен универсальный, вроде бы нормально установить ...

npm запустить сборку: ssr

Казалось бы, компиляция, некоторые предупреждения, но без ошибок. ..

npm run serve: ssr

Работало, пока я не загрузил страницу на localhost с этой ошибкой:

Ошибка включения автономного сохранения. Откат к постоянству отключен: Ошибка: ENOENT: нет такого файла или каталога, откройте 'C: \ angular projects \ testProject \ dist \ testproject \ server \ src \ protos \ google \ firestore \ v1 \ firestore.proto'

--------- Обновление -----------

Я удалил dist папка и восстановлен, и теперь я получаю только эту ошибку:

Ошибка: ENOENT: нет такого файла или каталога, откройте «google / protobuf / api.proto»

Вот полная ошибка:

PS C:\angular projects\testapp.io> npm run serve:ssr

> testapp@0.0.0 serve:ssr C:\angular projects\testapp.io
> node dist/testapp/server/main.js

C:\angular projects\testapp.io\dist\testapp\server\main.js:1
!function(e,a){for(var i in a)e[i]=a[i]}(exports,function(modules){var installedModules={},installedChunks={1:0};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}return __webpack_require__.e=function requireEnsure(chunkId){if(0!==installedChunks[chunkId]){var chunk=require("./"+({0:"firebase-functions",2:"vendors~firebase-auth",3:"vendors~firebase-functions"}[chunkId]||chunkId)+".js"),moreModules=chunk.modules,chunkIds=chunk.ids;for(var moduleId in moreModules)modules[moduleId]=moreModules[moduleId];for(var i=0;i<chunkIds.length;i++)installedChunks[chunkIds[i]]=0}return Promise.all([])},__webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){

Error: ENOENT: no such file or directory, open 'google/protobuf/api.proto'
    at Object.openSync (fs.js:443:3)
    at Object.readFileSync (fs.js:343:35)
    at fetch (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:1329786)
    at Root.load (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:1330192)
    at Root.loadSync (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:1330372)
    at Object.loadSync (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:2416566)
    at Object.8ZNE (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:1845817)
    at __webpack_require__ (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:317)
    at Object.BYZf (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:1943982)
    at __webpack_require__ (C:\angular projects\testapp.io\dist\testapp\server\main.js:1:317)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! testapp@0.0.0 serve:ssr: `node dist/testapp/server/main.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the testapp@0.0.0 serve:ssr script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\jdgam\AppData\Roaming\npm-cache\_logs\2020-04-14T06_52_22_707Z-debug.log
PS C:\angular projects\testapp.io> 

1 Ответ

4 голосов
/ 16 апреля 2020

Получается, что это связано с Ivy в Angular 9. Убедитесь, что вы добавили @ firebase / firestore к externalDependencies, поскольку, очевидно, его необходимо импортировать вручную:

        "server": {
          "builder": "@angular-devkit/build-angular:server",
          "options": {
            "outputPath": "dist/fireblog/server",
            "main": "server.ts",
            "tsConfig": "tsconfig.server.json",
            "externalDependencies": [
              "@firebase/firestore",
              "@nestjs/microservices",
              "@nestjs/microservices/microservices-module",
              "@nestjs/websockets",
              "@nestjs/websockets/socket-module",
              "cache-manager"
            ]
          },

https://github.com/angular/angularfire/issues/2320

...