NextJs 實現自定義點火操作
- 前言
- 實現自定義點火
前言
我希望在Nextjs
啟動的時候,能夠自定義實現一些項目的初始化邏輯,也可以說是一些點火操作,比如資源的加載,數據的初始化等操作。
實現自定義點火
我們可以在根目錄下創建一個文件server.js
// server.js
const { createServer } = require('http')
const { parse } = require('url');
const next = require('next')
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()// 初始化函數
async function init() {// 自定義你的初始化邏輯console.log('init success')
}// 啟動服務器
app.prepare().then(() => {// 在啟動服務器之前執行初始化函數init().then(()=>{createServer((req, res) => {const parsedUrl = parse(req.url, true)handle(req, res, parsedUrl)}).listen(4000, (err) => {if (err) throw errconsole.log('> Ready on http://localhost:4000')})})
})
在init
函數里面就可以編寫你自己的點火初始化邏輯了,接下來可以在package.json
中的腳本命令增加:& node server.js
,例如下面的dev
以及start
命令
"scripts": {"dev": "next dev & node server.js","build": "next build","start": "cross-env NODE_ENV=production next start & node server.js","lint": "next lint"},
程序啟動后結果如下: