Почему развертывание приложения gcloud не включает мой пользовательский модуль?

В моем сценарии приложения Node мне нужен специальный модуль, который имеет свои собственные зависимости. В локальной разработке все это работает нормально, и все работает так, как ожидалось. Однако, когда я хочу развернуть свое приложение в целом через развертывание приложения gcloud, возникает следующая ошибка:



Updating service [myapp]...failed.                                                                                                                                                       
ERROR: (gcloud.app.deploy) Error Response: [9] 
Application startup error:

> [email protected] start /app
> node server.js

internal/modules/cjs/loader.js:584
    throw err;
    ^

Error: Cannot find module 'mycustommodule'


Это как-то связано с тем, что, возможно, gcloud пытается загрузить все модули узла для себя с сервера NPM и, следовательно, явно не может найти мой локальный модуль? Я не могу понять, как включить свои собственные модули узлов (которые также имеют свои собственные зависимости).

Я благодарю вас за то, что вы подумали вместе со мной заранее. Помощь очень ценится.

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

Ответы 1

Ответ принят как подходящий

Когда вы запускаете команду gcloud app deploy, SDK автоматически создает файл .gcloudignore, который в значительной степени работает как .gitignore, и отфильтровывает некоторые файлы или каталоги, которые не будут развернуты.

.gcloudignore по умолчанию включает каталог node_modules/, поэтому ваши установленные зависимости не загружаются вместе с вашим кодом. Вы можете удалить эту запись из .gcloudignore и повторить попытку развертывания.

Хм, я этого не знал. Я собираюсь попробовать это, как только у меня будет возможность (плюс вознаградить за переполнение стека). Если я правильно понимаю, мне нужно развернуть с флагом --ignore-file=[file], указывающим на пустой файл .gcloudignore, который перезапишет тот, который создается автоматически?

DTestA 27.05.2019 10:49

Вы можете сделать это таким образом, да. Или, если вы уже запустили развертывание приложения gcloud, отредактируйте файл .gcloudignore, чтобы удалить папку node_modules.

LundinCast 27.05.2019 10:59

Где/как я могу увидеть, существует ли уже такой файл?

DTestA 27.05.2019 11:11

Вы должны увидеть, что он работает с ls -al в папке, из которой вы запускаете развертывание приложения gcloud. Если его нет, вы можете просто создать его самостоятельно (не забудьте точку)

LundinCast 27.05.2019 11:14

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