#環境
- Nuxt: 2.8
- firebase: 7.6.1
- TypeScript: 3.6
デプロイ手順
- 1.プロジェクト直下に
build.sh
というシェルを作成しビルドします(↓内容)
# 前回ビルドで作成されたフォルダ群を一度全て削除 rm -rf .nuxt public functions/nuxt # publicフォルダを作成 mkdir public # nuxtをbuildする npm run build # 各種フォルダのコピー cp -R .nuxt functions/nuxt cp -R .nuxt/dist/client public/assets
- 2.
firebase deploy
でデプロイ(今ココ
)
エラー内容
Running command: npm --prefix "$RESOURCE_DIR" run build > functions@ build /Users/HOGE/git/HUGA/functions > tsc ✔ functions: Finished running predeploy script. i functions: ensuring necessary APIs are enabled... ✔ functions: all necessary APIs are enabled i functions: preparing functions directory for uploading... Error: Error occurred while parsing your function triggers. TypeError: Nuxt is not a constructor at Object.<anonymous> (/Users/HOGE/git/nuxt-library/functions/lib/index.ts:5:14) at Module._compile (internal/modules/cjs/loader.js:936:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10) at Module.load (internal/modules/cjs/loader.js:790:32) at Function.Module._load (internal/modules/cjs/loader.js:703:12) at Module.require (internal/modules/cjs/loader.js:830:19) at require (internal/modules/cjs/helpers.js:68:18) at /Users/HOGE/.nodebrew/node/v12.9.1/lib/node_modules/firebase-tools/lib/triggerParser.js:15:15 at Object.<anonymous> (/Users/HOGE/.nodebrew/node/v12.9.1/lib/node_modules/firebase-tools/lib/triggerParser.js:53:3) at Module._compile (internal/modules/cjs/loader.js:936:30)
Nuxt is not a constructor
とのことなのでNuxtがうまく読み込めていない??確かにimport
形式で書いてみると下図のようにモジュール 'nuxt' の宣言ファイルが見つかりませんでした。
エラーとなる。そのため現状require
形式で書いている
functions/src/index.ts内容
import * as functions from 'firebase-functions' const Nuxt = require('nuxt') const express = require('express') const config = require('../../nuxt.config.ts') const nuxt = new Nuxt(config) const app = express() app.use(nuxt.render) // expressのミドルウェア関数に登録 exports.ssr = functions.https.onRequest(app) module.exports = app
ご指摘いただけると幸いです。
あなたの回答
tips
プレビュー