nextjs应用的入口点在哪里?

7kqas0il  于 2023-05-17  发布在  其他
关注(0)|答案(4)|浏览(569)

当将nextjs应用程序部署到c-panel主机时,它要求应用程序的入口点,默认为app.js。在正常的react应用程序中,它完全在控制之下,但当使用nextjs时,不清楚哪个js文件负责启动应用程序。

有什么想法选择正确的js文件作为应用程序的入口点?

编辑:

我的主机提供商为我提供了以下代码来设置一个express应用程序(使用next的请求处理程序)来处理请求:

const express = require('express');
const next = require('next');

const dev = process.env.NODE_ENV !== 'production';
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();

const port = 3454;

nextApp.prepare().then(() => {
  const app = express();

  app.get('*', (req, res) => {
    return handle(req, res);
  });

  app.listen(port, err => {
    if (err) throw err;
    console.log(`> Ready on localhost:${port}`);
  });
});

它工作,但它的速度很慢,因为它编译源文件的需求服务器的请求。

u3r8eeie

u3r8eeie1#

您只需要导出您的nextjs应用程序,它就可以与

页数-- * 是否有页数 *

  • index.js
  • example.js

app.js-- * 是否有app.js文件 *

只需添加以下脚本

"scripts": {
    "build": "next build",
    "export": "next export",
    "serve": "serve out"
  },

您可以先生成项目,然后将其导出。然后你就可以把它端上来看看它会怎么展开。
在cPanel的情况下,只需将nextjs构建文件夹(可能名为out)解压缩到您的文件夹(如xyz.com)。
在构建中会有一个index.html,它是您的主文件。

3qpi33ja

3qpi33ja2#

我很惊讶地看到cpanel有一个启动nodejs应用程序的功能。
关于app.js你需要了解的:
App.js包含一个Web服务器应用程序(从上面的代码中,您的托管提供商建议您使用ExpressJS -最常用的JS Web服务器应用程序),以向浏览器提供Web文件(类似于Apache)。
“它工作正常,但速度很慢,因为它根据服务器请求按需编译源文件。”
你有package.json文件吗?
你知道cpanel运行了什么命令来启动你的应用程序吗?
请检查您的NextJS应用程序是否在开发或生产模式下运行。

oaxa6hgo

oaxa6hgo3#

对我来说,最好的解决方案是使用一些进程管理器来引导应用程序。所以我使用PM2来启动应用程序并保持其运行。我在c-panel终端中发出以下命令,现在一切正常:

NODE_ENV=production pm2 start server.js

给定server.js有以下代码:

const express = require('express');
const next = require('next');

const dev = process.env.NODE_ENV !== 'production';
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();

const port = 3454;

nextApp.prepare().then(() => {
  const app = express();

  app.get('*', (req, res) => {
    return handle(req, res);
  });

  app.listen(port, err => {
    if (err) throw err;
    console.log(`> Ready on localhost:${port}`);
  });
});
nimxete2

nimxete24#

在React中,我们在公共文件夹中有INDEX.HTML文件,但在NEXTJS中,我们没有index.html文件。因为Next.js有内置的预渲染。因此,在React index.html文件中,通常用作应用程序的入口点,但在Next.js中,入口点定义在PAGES目录中。Next.js默认使用SSR,这意味着HTML在服务器上动态生成,并作为完整的页面发送到客户端。这允许更快的初始加载时间和更好的搜索引擎优化(SEO)。因此,在Nextjs中,应用程序入口点可以是PAGES目录中的任何ts或js文件。

相关问题