
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 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 |叽叽喳喳