# Next.js 应用
<subtitle>使用 Node.js 在沙箱中运行的 Next.js Web 应用。</subtitle>

基本的 Next.js 应用，包含 Tailwind 和 shadcn UI。

> 一旦沙箱就绪，开发服务器就会在 3000 端口上运行。

## 模板定义

```python
# template.py
from ucloud_sandbox import Template, wait_for_url

template = (
    Template()
    .from_node_image("21-slim")
    .set_workdir("/home/user/nextjs-app")
    .run_cmd(
        'npx create-next-app@14.2.30 . --ts --tailwind --no-eslint --import-alias "@/*" --use-npm --no-app --no-src-dir'
    )
    .run_cmd("npx shadcn@2.1.7 init -d")
    .run_cmd("npx shadcn@2.1.7 add --all")
    .run_cmd("mv /home/user/nextjs-app/* /home/user/ && rm -rf /home/user/nextjs-app")
    .set_workdir("/home/user")
    .set_start_cmd("npx next --turbo", wait_for_url('http://localhost:3000'))
)
```

## 构建模板

```python
# build.py
from ucloud_sandbox import Template, default_build_logger
from .template import template as nextjsTemplate

Template.build(nextjsTemplate, 'nextjs-app',
    cpu_count=4,
    memory_mb=4096,
    on_build_logs=default_build_logger(),
)
```
