如何在Next.js项目启动时运行自定义Hook/函数?求解决方案
在Next.js启动时执行console.log的几种方案
方案1:直接在next.config.js中添加日志
Next.js启动时会加载next.config.js文件,你可以直接在这个文件里写入console.log,启动项目时会自动执行:
/** @type {import('next').NextConfig} */ const nextConfig = { // 你的项目配置项 reactStrictMode: true, } // 启动时会输出这条日志 console.log('✅ Next.js项目开始启动') module.exports = nextConfig
方案2:修改package.json的启动脚本
在启动命令前追加一段Node.js执行语句,先输出日志再启动Next.js:
打开package.json,修改scripts里的dev(或start)命令:
{ "scripts": { "dev": "node -e \"console.log('🚀 正在启动开发服务器...')\" && next dev", "start": "node -e \"console.log('🌐 生产服务器启动中...')\" && next start" } }
执行npm run dev或npm run start时,会先打印日志,再启动Next.js服务。
方案3:使用自定义服务器文件
如果需要更复杂的启动逻辑,可以创建自定义服务器文件,在启动Next.js前添加日志:
- 若使用express框架,先安装依赖:
npm install express
- 创建
server.js文件:
const express = require('express') const next = require('next') const dev = process.env.NODE_ENV !== 'production' const app = next({ dev }) const handle = app.getRequestHandler() // 启动前输出日志 console.log('🔧 准备初始化Next.js应用...') app.prepare().then(() => { const server = express() server.all('*', (req, res) => { return handle(req, res) }) server.listen(3000, (err) => { if (err) throw err console.log('> Ready on http://localhost:3000') }) })
- 修改
package.json的启动脚本:
{ "scripts": { "dev": "node server.js", "start": "NODE_ENV=production node server.js" } }
内容的提问来源于stack exchange,提问作者dasunekanayake
相关产品推荐
相关产品推荐

