Я пытаюсь развернуть сайт на сервере Plesk, в отличие от предыдущих версий Next JS, где вам приходилось редактировать файл /node_modules/.bin/next
и добавлять start
в const defaultCommand
.
(вы можете проверить ссылку здесь) https://medium.com/@keithchasen/how-to-set-up-your-next-js-app-on-plesk-server-7d8d247a2db2
Мне интересно, знает ли кто-нибудь из вас, как можно взломать последнюю версию Next?
Заранее спасибо, NumaX
Я попробовал это https://talk.plesk.com/threads/nextjs-works-on-plesk.354281/
Проблема с новой версией next 14.2 заключается в том, что следующий файл из .bin снова перезаписан. К сожалению, старый метод здесь не работает.
Я нашел решение для Nextjs 14.2.5. Откройте и отредактируйте файл в /node_modules/.bin/next
через диспетчер файлов. В строках 81-83 должен быть код:
program.command("dev", {
isDefault: true
}).description("Starts Next.js in development mode with hot-code reloading, error reporting, and more.").argument("[directory]", `A
Установите isDefault
на false
program.command("dev", {
isDefault: false
}).description("Starts Next.js in development mode with hot-code reloading, error reporting, and more.").argument("[directory]", `A
Затем в строке 105 должен быть следующий код:
program.command("start").description("Starts Next.js in production mode. The application should be compiled with `next build` first.").argument("[directory]", `A directory on which to start the application. ${(0, _picocolors.italic)("If no directory is provided, the current directory will be used.")}`).addOption(new _commander.Option("-p, --port <port>", "Specify a port number on which to start the application.").argParser(_utils.myParseInt).default(3000).env("PORT")).option("-H, --hostname <hostname>", "Specify a hostname on which to start the application (default: 0.0.0.0).").addOption(new _commander.Option("--keepAliveTimeout <keepAliveTimeout>", "Specify the maximum amount of milliseconds to wait before closing inactive connections.").argParser(_utils.myParseInt)).action((directory, options)=>import("../cli/next-start.js").then((mod)=>mod.nextStart(options, directory))).usage("[directory] [options]");
Добавьте дополнительный аргумент объекта с помощью isDefault: true
program.command("start", {
isDefault: true
}).description("Starts Next.js in production mode. The application should be compiled with `next build`
Сохраните и закройте файл, затем перейдите в nodejs. Запустите npm install
и npm build
, и теперь все должно работать.
ВАЖНОЕ ПРИМЕЧАНИЕ. Если у вас есть новые обновления вашего проекта и вы хотите повторно развернуть следующее приложение, сначала извлеките проект из репозитория, затем перейдите к инструменту разработки Node.js и перезапустите его с помощью кнопки Restart App
и, наконец, запустите npm install
и npm build
.
Я надеюсь, что Plesk найдет способ интегрировать Nextjs в свою платформу. На данный момент требуется много действий вручную, чтобы заставить его работать.
Спасибо за ответ!!! Просмотрев следующий файл и повозившись, я понял, что это решение проблемы. 100% работает!