Версии:
узел: 12.12.0
angular cli: 8.3.23
angular / fire: ^ 5.4.2
firebase: ^ 7.13.1
Все отлично работает в режиме разработки. Ошибка появляется, когда я запускаю скрипт 'universal-ssr@0.0.0 serve: ssr', где 'universal-ssr' - это имя моего проекта. Я много чего перепробовал, но никто даже близко не подошел к решению проблемы.
Выполненный мной скрипт:
npm run staging
Проблема:
WARNING in ./node_modules/bytebuffer/dist/bytebuffer-node.js
Module not found: Error: Can''t resolve 'memcpy' in '/home/de-10/VS Code Workspace/oms-v3/node_modules/bytebuffer/dist'
.
.
.
/home/de-10/VS Code Workspace/oms-v3/dist/server/main.js:226508
throw new Error("package.json does not exist at " + package_json_path);
^
Error: package.json does not exist at /home/de-10/VS Code Workspace/oms-v3/dist/package.json
at Object../node_modules/grpc/node_modules/node-pre-gyp/lib/pre-binding.js.exports.find (/home/de-10/VS Code Workspace/oms-v3/dist/server/main.js:226508:15)
.
.
.
npm ERR! universal-ssr@0.0.0 staging: `npm run build:ssr-staging && npm run serve:ssr`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the universal-ssr@0.0.0 staging script.
package. json:
{
"scripts": {
"staging": "npm run build:ssr-staging && npm run serve:ssr",
"build:ssr-staging": "npm run build:client-and-server-bundles-staging && npm run webpack:server",
"serve:ssr": "node dist/server.js",
"build:client-and-server-bundles-staging": "ng build --c=staging --build-optimizer=true --stats-json && ng run universal-ssr:server --bundleDependencies all"
}
}
Одним из обходных путей было удаление --bundleDependencies all
или замена его на --bundleDependencies none
, но это не работает для меня. Хотя он успешно собирается, но когда я перемещаю папку dist и выполняю node dist/server.js
, появляется следующая ошибка:
internal/modules/cjs/loader.js:797
throw err;
^
Error: Cannot find module '@angular/core'
Require stack:
- /home/de-10/Desktop/dist/server/main.js
- /home/de-10/Desktop/dist/server.js
.
.
.
at __webpack_require__ (/home/de-10/Desktop/dist/server/main.js:20:30) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/home/de-10/Desktop/dist/server/main.js',
'/home/de-10/Desktop/dist/server.js'
]
}
Я также попытался установить grpc
и @grpc/proto-loader
, как кто-то предложил, но нет, это не работает.
Другим обходным решением было добавление набора пакетов в angular. json> architect.server.options:
"externalDependencies": [
"grpc",
"@grpc/proto-loader",
"@angular/fire/firestore",
"firebase/firestore"
]
Поэтому, когда я пытаюсь сделать что я получаю:
Свойство externalDependencies не допускается.