Зависимости пакета узла от IBM Cloud Foundry - require / module не определен (Пакет не загружается) - PullRequest
0 голосов
/ 18 марта 2019

Я работаю над приложением с помощью инструмента Toolchain в IBM Cloud и редактирую код с помощью Eclipse Orion IDE.Поскольку я не обращаюсь к этому через мой локальный клиент, я понимаю, что для вызова npm install {package} мне просто нужно включить пакет в файл package.json в разделе зависимостей и require в моем приложении.Однако, когда я загружаю приложение, я получаю, что требование не определено, указывая, что пакет не был установлен.Кроме того, require() используется в файле app.js с запущенным приложением, но не из файлов в моем каталоге public.

После дальнейшей игры кажется, что это может быть связано сспособ отслеживания дерева каталогов, поскольку ошибка генерируется только в подкаталогах.Например, require('express') работает в app.js, который находится в главном каталоге ./, но завершается ошибкой, когда он вызывается в test.js в ./subdirectory/test.js.Я чувствую, что упускаю что-то мучительно простое, например, конфигурацию конечной точки или что-то в этом роде.

Я искал, но не могу найти, как загрузить пакеты, желательно без использования cli.Цените любые указатели.Спасибо!

Обновление: после продолжения игры, я также получаю модуль не определена ошибка при попытке запросить из другого файла в том же каталоге.Например, module.exports = 'str' возвращает эту ошибку.При попытке require('./file') вернуть требование не определено.Возможно, это связано с тем, как узел оборачивает функции?

Обновление 2: пробовал "start": "npm install && node app.js" в package.json, но не повезло.Добавление этапа сборки, который вызывает npm install перед развертыванием, также не работает

Обновление 3: После добавления этапа сборки npm install я вижу, что зависимости были успешно построены с помощью журналов.Однако требование не определено. Ошибка по-прежнему сохраняется.

Обновление 4: Попытка установки npm из моего CLI также не работает, даже если присутствуют все пакеты и зависимости

Обновление 5: Выполняетсяcf restage или настройка кеша с помощью cacheDirectories также не работает

Открыт связанный вопрос по развертыванию здесь

1 Ответ

0 голосов
/ 21 марта 2019

Обнаружил, что моя путаница была вызвана тем, что я не осознавал, что require() нельзя использовать на стороне клиента, если не используются такие инструменты, как Browserify.

...