Razzle - Реакция не найдена Ошибка при запуске server.js в папке сборки

Я использовал Razzle для серверного приложения.

Теперь пришло время развернуть приложение на сервере. Я использую IIS в качестве веб-сервера. Но когда я перемещаю папку сборки в другой каталог и запускаю на ней сервер узлов, появляются ошибки, которые я не могу найти модули, которые я использовал в своем приложении, например, реакция.

internal/modules/cjs/loader.js:638
    throw err;
    ^
Error: Cannot find module 'react'
...

Должен ли я переместить папку node_modules с папкой сборки? или я что-то не так делаю?

1 ответ

Поскольку на мой вопрос никто не ответил. Делюсь тем, что узнал.

Razzle использует webpack-node-externals, чтобы исключить node_modules при сборке. (я не знаю почему)

Простое изменение в razzle.config.js исправит это.

module.exports = {
    modify: (config, { target, dev }, webpack) => {
      if (target === "node") {
        config.externals = []    
      }
      return config;
    },
  };

Вам нужно переместить node_modules вместе с папкой сборки. Потому что server.js и пакетные файлы в папке сборки нуждаются в модулях, которые вы установили. Вышеупомянутая ошибка происходит, потому что сервер не может найти модуль реакции.

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