Next.js应用打包发布,脱离next cli单独使用
Next.js应用的默认生产环境启动命令是next start
,这个有比较严苛的要求,比如代码必须在当前目录下,不方便用pm2管理,无法从自定义script启动等,甚至,如果想要发布一个cli应用,并让用户从自定义的命令行启动,这种方式也是无法实现的。
其实,next可以用express来启动(以中间件的方式),但是官方文档似乎没有找到。
新建一个app.js
文件用于启动next应用
const next = require('next');
const express = require('express');
const app = next({ dev: false, dir: __dirname}); // dir即为.next目录所在路径
const handler = app.getRequestHandler(app);
const port = 3000;
app.prepare().then(function() {
const server = express();
server.use(handler); // nextjs应用初始化(prepare)完成后,以中间件的形式注入express
// 此处插入任何自定义的命令,这是一个标准的express instance
server.listen(port, function() {
console.log(`App running on http://localhost:${port}`);
});
});
使用的时候,首先执行next build
,会得到一个.next
文件夹,在下面的目录结构下,dir
无需改动,只要设置为__dirname
即可。
--app
----.next
----app.js
文章原始链接:https://sijie.wang/posts/nextjs-publish
本站文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请保留原始链接
发表评论