Функции Firebase не будут развернуты после добавления пакета NPM - PullRequest
0 голосов
/ 19 апреля 2020

Справочная информация: Я недавно (пытался) добавить Taiko в мое веб-приложение Firebase. Taiko - это пакет npm для автоматизации браузера, такой же, как Puppeteer. Может быть актуально: он загружает Chromium для работы.

Проблема: сейчас нет моих функций будут развернуты.

Вопрос После выхода из этой указанной c проблемы, мой более общий вопрос: «Чего мне не хватает в этом рабочем процессе?» / «Как мне избежать этой проблемы в будущем?»

Сообщение об ошибке: (жирный шрифт, выделение материала, который может иметь отношение к делу)

  • Сборка не удалась: {"error": {"canonicalCode": "INVALID_ARGUMENT", "errorMessage": "` npm_install` имел вывод stderr: \ n / workspace / node_modules / fs-extra / lib / mkdirs / make- dir. js: 86 \ n} catch {\ n ^ \ n \ nSyntaxError: неожиданный токен {\ n при createScript (vm. js: 80: 10) \ n в Object.runInThisContext (vm. js: 139: 10) \ n в Module._compile (модуль. js: 617: 28) \ n в Object.Module._extensions .. js (module. js: 664: 10) \ n в Module.load (module. js: 566: 32) \ n в tryModuleLoad (module. js: 506: 12) \ n в Function.Module._load (module. js: 498 : 3) \ n в Module.require (module. js: 597: 17) \ n по требованию (внутренний / module. js: 11: 18) \ n в Object. (/ Workspace / node_modules / fs- extra / lib / mkdirs / index. js: 3: 44) \ n npm ERR! код ELIFECYCLE \ n npm ERR! errno 1 \ n npm ERR! taiko@1.0.7 установить: `node lib / install.js` \ п npm ОШИБКА! Статус выхода 1 \ n npm ERR! \ n npm ОШИБКА! Ошибка при установке taiko@1.0.7. \ N npm ERR! Вероятно, это не проблема с npm. Скорее всего, выше вывод журнала. \ N \ n npm ERR! Полный журнал этого прогона можно найти в: \ n npm ERR! /builder/home/.npm/_logs/2020-04-19T14_36_20_217Z-debug.log\n\nerror: `npm_install` вернул код: 1", "errorType": "InternalError", "errorId": "02C3A7B5"}}

пакет. json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "8"
  },
  "dependencies": {
    "firebase-admin": "^8.10.0",
    "firebase-functions": "^3.3.0",
    "node-fetch": "^2.6.0",
    "stripe": "^7.14.0",
    "taiko": "^1.0.6",
    "bufferutil": "^4.0.1",
    "utf-8-validate": "^5.0.2"
  },
  "devDependencies": {
    "eslint": "^5.12.0",
    "eslint-plugin-promise": "^4.0.1",
    "firebase-functions-test": "^0.1.6"
  },
  "private": true
}

Что я уже сделал:

  • создал функцию тестирования Taiko в index.js, require ing Taiko.

  • добавил Taiko в package.json

  • запустил npm install в папке функций

  • получил сообщение npm WARN ws@7.2.3 requires a peer of bufferutil@^4.0.1 but none is installed. npm WARN ws@7.2.3 requires a peer of utf-8-validate@^5.0.2 but none is installed. You must install peer dependencies yourself.

  • , после чего npm install отредактировал оба вышеуказанных пакета в /functions

Это та же самая базовая c процедура, которой я следовал, чтобы создать функцию Stripe в моем index.js, и у нее не было проблем.

РЕДАКТИРОВАТЬ: Taiko 1.07, Node 12.16.2, npm 6.9.0, firebase-tools cli 8.1.1

Любые идеи приветствуются!

1 Ответ

0 голосов
/ 20 апреля 2020

От команды Taiko на Github:

Эта ошибка обычно возникает на версии <узла 10 косвенно из-за пакета fs-extra. Облачные функции Firebase используют узел 8 по умолчанию. Пожалуйста, попробуйте установить экспериментальный узел 10, как упомянуто в документации, на <a href="https://firebase.google.com/docs/functions/manage-functions#set_nodejs_version" rel="nofollow noreferrer">https://firebase.google.com/docs/functions/manage-functions#set_nodejs_version

Итак, конкретный ответ c был , установите для движка Node значение "10" в пакете проекта Firebase. json файл .

И, более общий ответ на вопрос «что мне не хватает в этом рабочем процессе», это

  • при запуске пакетов в удаленной среде, убедитесь, что время выполнения эта среда соответствует вашей локальной среде разработки, иначе поведение может отличаться.

  • Используйте соответствующую версию узла для пакетов в вашем проекте, не обязательно самую последнюю.

...