Cloud Foundry — структура папок и относительные пути

Это отчасти связано с проблемой, с которой я столкнулся при использовании CF в IBM Cloud здесь. Мой вопрос после игры со структурами папок: как именно CF создает приложение, когда дело доходит до относительных путей?

Например, если у меня есть следующая структура папок

Cloud Foundry — структура папок и относительные пути

когда я добавляю <script type = 'text/javascript' src = '../index.js'></script> в файл index.html, я получаю GET https://simple-toolchain-20190320022356947.mybluemix.net/index.js net::ERR_ABORTED 404. Эта ошибка не возникает, когда я перемещаю index.js в папку public и меняю <script type = 'text/javascript' src = 'index.js'></script>.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь require() любые модули, когда index.js файл находится в подкаталоге, он возвращает Require is not defined ошибку, указывающую, что он не получает модуль из node_modules кеша, который CF должен построить. Требование любых файлов в одном и том же подкаталоге также вызывает ту же ошибку. Это не кажется проблемой, когда require() используется по умолчанию app.js, поскольку приложение загружается без каких-либо ошибок.

Я относительно новичок в инструменте IBM Cloud Foundry, но я следую той же структуре, что и при отправке приложений через Cloud9 IDE, и у меня не было таких проблем. Я чувствую, что могу упустить что-то до смешного простое, например, настройку конечной точки или package.json. Тем не менее, я искал несколько дней и не могу найти решение.

Цените, если у вас есть какие-либо указатели. Спасибо!

Это вопрос не к Cloud Foundry, а к Node.js. Какой у вас опыт работы с Node.js?

data_henrik 20.03.2019 07:45

У меня есть базовое понимание Node.js, но недостаточно, чтобы решить эту проблему;). Меня смущает то, что на моем локальном рабочем столе, пока я npm i {package}, я могу require('{package}') в любых подкаталогах. Я получаю ошибки только при попытке перенести его в Cloud Foundry, поэтому я подумал, что это связано с тем, как CF создает приложение.

Kai Shin Aw 20.03.2019 08:18

Я бы порекомендовал начать здесь: docs.cloudfoundry.org/buildpacks/node/index.html Cloud Foundry использует пакеты сборки для поддерживаемых языков, Node.js — один из них. См. информацию о package.json

data_henrik 20.03.2019 09:00

Спасибо за указатели, особенно поясняющие, что это вопрос об узле. После поиска я обнаружил, что проблема заключалась в том, что я пытался использовать require() на стороне клиента, отсюда и мое замешательство.

Kai Shin Aw 20.03.2019 09:52
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
529
1

Ответы 1

Из-за непонимания я пытался использовать require() на стороне клиента, отсюда и ошибки. Собираюсь выяснить, как использовать Browserify сейчас. ;)

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