ОС: Debian 9 (растянутый)

Сохраненная глобальная установка npm:

  • react@16.7.0

  • react-dom@16.7.0

  • next@7.0.2

При создании статического веб-приложения с платформой Next, npm run dev отлично работает в localhost:3000 с package.json:

"scripts": {
    "dev": "next",
    "build": "next build",
    "start": "next start"

При сборке для развертывания в одиночку с помощью npm run build это происходит:

> Failed to build { Error: (client) ./pages/index.js Module not found: Error: Can't resolve 'react' in 'path/to/pages' (......) }
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! arcfsoon@1.0.0 build: `next build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the arcfsoon@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/jp/.npm/_logs/2019-01-19T13_55_25_781Z-debug.log

Мне удалось построить его вчера, переустановив всю техническую кучу и дав разрешение su моему пользователю (решение, которое сегодня снова не работает ...). Но при развертывании с now возникает проблема с путем к index.js, потому что now доступ по URL не может найти «./pages/index.js» и при перенаправлении отображает index.js в виде простого текста вместо сделать код

SSR может быть? Пытаюсь со всем этим разобраться ...

Этот же проект был встроен в macOsX и развернут также сейчас, и все работает отлично.

Итак, что, черт возьми, Маннн?

Установлены и переустановлены все библиотеки и основные технологии. Все под пользователя и с подходящими привилегиями. Переписал все с нуля на новом месте. Изучил документы Next и Now, пока React's ...

Самый близкий, который я получил, чтобы решить модуль реагирования, был с https://webpack.js.org/configuration/resolve/, но это не

module.exports = {
  //...
  resolve: {
    module: ['react']
  }
};

или что-то типа того.

После устранения неполадок моя логика такова:

1 Код в порядке, так как он компилируется и работает на других станциях;

2 Возможно, что-то связано с моей компиляцией в Debian/Linux;

Не могу идти дальше. Любая помощь, большое спасибо.

1 ответ1

0

Итак ... 24 дня спустя ...

Ответ в документальной (хорошо скрытой) ведьме таков:

«Однако, если вы определите шаг сборки, теперь будут включать только те выходные данные, которые построители создают в результате развертывания».

Итак, если я определю конструктор, например: https://zeit.co/docs/v2/deployments/official-builders/next-js-now-next/

ЭТО ВОЛШЕБНО РАБОТАЕТ!

В моем случае Now/Next есть несколько компоновщиков, готовых для вашей предпочитаемой платформы.

РЕШЕНИЕ: создано 2 файла:

next.config.js

module.exports = {
target: 'serverless'
}

now.json

{
"version": 2,
"builds": [{ "src": "next.config.js", "use": "@now/next" }]
} 

Проверьте https://zeit.co/docs/v2/deployments/builds/#sources-and-outputs для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .