Версия Node.js и функции Google Cloud

Я получаю это сообщение, когда запускаю локальный сервер Firebase с firebase serve:

Warning: You're using Node.js v8.9.4 but Google Cloud Functions only supports v6.11.5.

Но информации о том, что делать, нет. Что мне нужно сделать, чтобы понизить версию Node.js до версии 6.11.5? Должен ли я использовать эту версию только для проектов Firebase и последнюю выпущенную версию Node.js для других проектов? В таком случае, как мне это сделать?


Обновлено: предупреждение теперь выглядит так, и я не могу запустить новый почти пустой проект:

Warning: You're using Node.js v8.9.4 but Google Cloud Functions only supports v6.11.5.
!  functions: Failed to load functions source code. Ensure that you have the latest SDK by running npm i --save firebase-functions inside the functions directory.
!  functions: Error from emulator. mod.hasOwnProperty is not a function

Так что я действительно думаю, что мне нужно понизить версию Node.js. Но я не знаю, как это сделать безопасно. Хм, глядя на http://nodejs.org/ не могу найти даже версию v6.11.5?


Обновлено еще раз: Только что проверил новый проект, исправил ли npm update --dev проблему. Это не так. (На самом деле нет обновленных пакетов.)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
15
0
7 837
5

Ответы 5

Это просто предупреждение. Вы можете игнорировать это, если знаете, что делаете. Он сообщает вам, что ваша локальная эмуляция функции (работающая на узле 8.9.4) может не полностью соответствовать тому, что функция будет делать при ее развертывании в облачных функциях (работающей на 6.11.5). Но пока вы не используете какие-либо функции узла, которые недоступны на узле 6.11.5, у вас не будет проблем. Я использую более новые версии узла для постоянного локального тестирования без проблем.

Похоже, возникла какая-то проблема (см. Поддержка облачных функций в Node.js v8 [66770141] - Issuesetracker.google.com/issues/66770141). Я понятия не имею, что именно из-за этого не работает, но со мной случилось так, что что-то, что действительно работало локально, не работало на развернутом сервере.

Leo 25.04.2018 03:33

Возможно, вы использовали языковую функцию, которой не было в узле 6, например async / await. Нет проблем, если вы будете придерживаться того, что поддерживается узлом 6.

Doug Stevenson 25.04.2018 04:16

Может быть. Но я сам не использовал async / await. Однако в некоторых модулях могут быть неподдерживаемые функции. Есть ли способ узнать? Любой инструмент, с помощью которого можно это проверить?

Leo 25.04.2018 13:30

Я просто попытался развернуть запланированную функцию с более новой версией узла на моем локальном компьютере, и она была отклонена с непонятными сообщениями об ошибках. Команда поддержки Firebase попросила меня понизить версию узла, и это сработало .. Загвоздка в том, что сообщения журнала не часто указывают в правильном направлении: /

sjsam 12.02.2021 19:54

Вы можете удалить и переустановить эмулятор Cloud Functions и Firebase Tools, используя команды, представленные в руководстве GitHub Поиск проблемы. Поскольку вы используете Firebase, следуйте инструкциям для «Инструменты Firebase».

Спасибо, но не думаю, что это поможет. В нем не говорится, как перейти на более раннюю версию Node.js.

Leo 17.05.2018 19:10

@Leo - вам необходимо переустановить Node.js для перехода на более раннюю версию, указав номер версии во время установки, 6.11.5 для вас, как описано здесь abeautifulsite.net/how-to-upgrade-or-downgrade-nodejs-using-‌ npm. Надеюсь это поможет.

Amruth Bahadursha 17.05.2018 21:02

Спасибо, похоже, это то, что я ищу. Я предполагаю, что n здесь - это node? (sudo n stable, sudo n 4.4.2, sudo npm install -g n) Нет команды n при запуске в Windows.

Leo 18.05.2018 16:57

@Leo - вот команды для установки в Windows, включая команды для установки конкретной версии. github.com/felixrieseberg/npm-windows-upgrade

Amruth Bahadursha 18.05.2018 18:47

В ответах на этот вопрос перечислено несколько инструментов.

Для Windows я просто успешно использовал nvmw для выполнения той же задачи.

Node v8 теперь доступен для облачных функций: https://firebase.googleblog.com/2018/08/cloud-functions-for-firebase-config-node-8-timeout-memory-region.html

Так что я считаю, что это предупреждение действительно можно игнорировать ...

Вы получите здесь nvm

После установки nvm. просто используйте эту команду "nvm install 8.9.1 64bit" вы можете использовать любую версию здесь или 64bit 32bit в соответствии с конфигурацией вашей системы после этой установки используйте "nvm use 8.9.1"

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