Функции Firebase не могут найти мопса

У меня есть простая функция Firebase, которая отображает шаблон мопса.

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const creds = {
    projectId: "retnikt-blog",
    privateKey: "-----BEGIN PRIVATE KEY-----\n REDACTED \n-----END PRIVATE KEY-----\n",
    clientEmail: "REDACTED@REDACTED.iam.gserviceaccount.com"
};

admin.initializeApp({credential: admin.credential.cert(creds)});
const app = require("express")();
const pug = require("pug");
app.engine('pug', pug.__express);
app.set('view engine', 'pug');
app.set('views', '../views');

exports.myFunction = functions.https.onRequest((req, res) => {
    res.render('blog.pug', {
        title: 'title',
        body: 'body',
        author: 'author',
        date: 'date',
        categories: 'categories',
        tags: 'tags'
    });
});

Когда я запускаю эту функцию, она говорит мне Error: Cannot find module 'pug', Я установил pug с NPM в корневой каталог моего проекта, и в моем package.json зависимости я указал мопс:

"dependencies": {
    ...
    "pug": "2.0.3"
}

Я установил Pug глобально, и теперь он работает локально, но при развертывании он просто выдает "Ошибка: не удалось обработать запрос" со статусом 500.

Мои два вопроса: А) Почему установленный мопс не распознается, иБ) "Не удалось обработать запрос" также из-за того, что мопс не был распознан?

РЕДАКТИРОВАТЬ: после проверки журналов, кажется, это правильно

NodeJs v8.10.0 firebase-tools 3.18.5

0 ответов

Pug должен зависеть от вашего package.json внутри папки функций, а не в корневой папке.

Другие вопросы по тегам