部署Quasar SSR项目到Firebase时出现MODULE_NOT_FOUND错误求助
问题:Quasar SSR 部署 Firebase Functions 时出现 MODULE_NOT_FOUND 错误
我有多个基于Quasar和Firebase构建的SSR模式项目,执行常规部署流程时遇到错误:
- 先运行
quasar build -m ssr - 再执行
firebase deploy --only functions:handler
报错信息如下:
Build failed: internal/modules/cjs/loader.js:818 throw err; ^ Error: Cannot find module '/layers/google.nodejs.runtime/node/bin/node_modules/npm/bin/npm-cli.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15) at Function.Module._load (internal/modules/cjs/loader.js:667:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Could not determine Node.js install directory; Error ID: b0ba1f57
已知情况
- 仅部署项目根目录
functions文件夹内的函数时一切正常 - 已按照Quasar文档要求,将
@quasar/app-webpack从3.0.0升级到3.9.2,但错误依旧
相关配置文件
项目根目录 package.json
"dependencies": { "@quasar/extras": "^1.0.0", "algoliasearch": "^4.15.0", "core-js": "^3.6.5", "firebase": "^9.16.0", "firebase-admin": "^11.9.0", "firebase-functions": "^4.2.0", "intersection-observer": "^0.12.2", "quasar": "^2.6.0", "vue": "^3.0.0", "vue-i18n": "^9.0.0", "vue-instantsearch": "^4.8.7", "vue-router": "^4.0.0", "vuex": "^4.0.1", "vuex-persistedstate": "^4.1.0" }, "devDependencies": { "@quasar/app-webpack": "^3.9.2", "workbox-webpack-plugin": "^6.5.4" },
production-export.js
import * as functions from 'firebase-functions' import { ssrProductionExport } from 'quasar/wrappers' export default ssrProductionExport(({ ssrHandler }) => { return { handler: functions.https.onRequest(ssrHandler) } })
firebase.json
{ "firestore": { "rules": "firestore.rules", "indexes": "firestore.indexes.json" }, "hosting": { "public": "dist/ssr", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "function": "handler" } ] }, "storage": { "rules": "storage.rules" }, "functions": { "source": "dist/ssr" } }
dist/ssr/package.json
"dependencies": { "algoliasearch": "4.15.0", "core-js": "3.27.2", "firebase": "9.16.0", "firebase-admin": "^11.9.0", "firebase-functions": "^4.2.0", "intersection-observer": "0.12.2", "quasar": "2.11.5", "vue": "3.2.45", "vue-i18n": "9.2.2", "vue-instantsearch": "4.8.7", "vue-router": "4.1.6", "vuex": "4.1.0", "vuex-persistedstate": "4.1.0", "compression": "^1.0.0", "express": "^4.0.0", "@quasar/ssr-helpers": "2.2.2", "@quasar/babel-preset-app": "2.0.2" }, "engines": { "node": "16", "npm": ">= 6.13.4", "yarn": ">= 1.21.1" }, "browserslist": [ "last 10 Chrome versions", "last 10 Firefox versions", "last 4 Edge versions", "last 7 Safari versions", "last 8 Android versions", "last 8 ChromeAndroid versions", "last 8 FirefoxAndroid versions", "last 10 iOS versions", "last 5 Opera versions" ], "quasar": { "ssr": true } }
内容的提问来源于stack exchange,提问作者Nikos
相关产品推荐
相关产品推荐

