
OpenNext採用Next.js構建輸出,並將其轉換為可以在各種環境中部署的軟件包。本地開放式next支持AWS lambda和classic node.js服務器。
OpenNext旨在支持所有Next.js 14個功能。某些功能正在進行中。如果您遇到任何問題,請確保在打開新問題或訪問我們的不和諧之前先檢查文檔,讓我們知道!
英國Gymshark UK,Tudn,NHS英格蘭
為了個性化,您需要在與next.config.js同一地點創建一個文件open-next.config.ts ,並導出滿足OpenNextConfig接口的默認對象。可能沒有open-next.config.ts文件,然後將自動應用默認配置。
可以通過在構建之前設置環境變量OPEN_NEXT_DEBUG=true來執行OpenNext。
這將向控制台輸出許多其他日誌。這也可以禁用Esbuild中的縮放,並在輸出中添加源地圖。這可能導致代碼可能比生產構建大2-3倍。不要在生產中實現這一目標。
您可以在文檔中閱讀有關配置的更多信息
除了標準NPM版本,我們還將在分支推送(使用pkg.pr.new )上自動發布預發行軟件包:
https://pkg.pr.new/@opennextjs/aws@main :每次推動到main分支,此預發行都包含迄今為止最新的(合理)穩定版本的軟件包版本。https://pkg.pr.new/@opennextjs/aws@experimental to to to the Experiment分支,此預發行包含該軟件包的最新實驗版本(包含我們希望在承諾之前測試/ experimental的功能)。您可以直接與選擇的軟件包管理器直接安裝:例如:
npm i https://pkg.pr.new/@opennextjs/aws@main在本地運行OpenNext :
克隆這個存儲庫。
構建open-next :
cd packages/open-next
pnpm build在手錶模式open-next :
pnpm dev現在,您可以更改open-next並構建您的下一個.js應用以測試更改。
cd path/to/my/nextjs/app
path/to/opennextjs-aws/packages/open-next/dist/index.js buildOpenNext為您提供較溫暖的功能,可用於減少冷啟動。
在lambda上,有多種情況,即使您有一些溫暖的實例,蘭伯達也會觸發冷門。例如,如果您的請求多於溫暖實例,您將獲得一個冷啟動。另外,NextJS懶惰加載路線,因此,即使您擊中了溫暖的實例,此特定路線也可能還沒有加載。
我們感謝啟發OpenNext的項目以及社區開發的驚人工具和圖書館:
對@khuezy和 @conico974的特別大喊大叫。
由SST維護。加入我們的社區:不和諧| YouTube |嘰嘰喳喳