框架集成指南
🎯 概述
Anima 提供了针对主流 Web 框架的 SDK 和插件,让你无需手动管理隧 道,只需在项目中安装对应的包,启动开发服务器时自动创建隧道。
核心优势:
- ✅ 零配置,开箱即用
- ✅ 开发服务器启动时自动创建隧道
- ✅ 进程退出时自动清理
- ✅ 支持热重载
- ✅ 团队成员即装即用
🚀 Node.js 生态
Express.js
安装
npm install @anima/express
使用
const express = require('express');
const anima = require('@anima/express');
const app = express();
// 开发环境自动启用隧道
if (process.env.NODE_ENV === 'development') {
app.use(anima({
token: process.env.ANIMA_TOKEN,
subdomain: 'myapp', // 可选:自定义子域名
autoStart: true,
onReady: (url) => {
console.log(`🌐 公网地址: ${url}`);
}
}));
}
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server started on http://localhost:3000');
});
运行
ANIMA_TOKEN=your-token npm start
# 输出:
# Server started on http://localhost:3000
# 🌐 公网地址: https://myapp.anima4.cn
Next.js
安装
npm install @anima/next
配置
// next.config.js
const { withAnima } = require('@anima/next');
/** @type {import('next').NextConfig} */
const nextConfig = {
// 你的配置
};
module.exports = withAnima(nextConfig, {
enabled: process.env.NODE_ENV === 'development',
token: process.env.ANIMA_TOKEN,
subdomain: 'my-nextjs-app',
});
环境变量
# .env.local
ANIMA_TOKEN=your-token-here
运行
npm run dev
# 输出:
# ✓ Ready on http://localhost:3000
# 🚀 Anima 隧道已就绪
# 🌐 公网地址: https://my-nextjs-app.anima4.cn
# 📋 已复制到剪贴板
Vite + React/Vue
安装
npm install @anima/vite-plugin
配置
// vite.config.js
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import anima from '@anima/vite-plugin';
export default defineConfig({
plugins: [
react(),
anima({
token: process.env.VITE_ANIMA_TOKEN,
subdomain: 'my-vite-app',
openBrowser: true, // 自动打开浏览器
copyToClipboard: true, // 自动复制链接
})
]
});
运行
VITE_ANIMA_TOKEN=your-token npm run dev
Koa.js
安装
npm install @anima/koa
使用
const Koa = require('koa');
const anima = require('@anima/koa');
const app = new Koa();
// 中间件方式
if (process.env.NODE_ENV === 'development') {
app.use(anima({
token: process.env.ANIMA_TOKEN,
subdomain: 'my-koa-app',
}));
}
app.use(async ctx => {
ctx.body = 'Hello Koa';
});
app.listen(3000);
NestJS
安装
npm install @anima/nestjs
配置
// main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { AnimaTunnel } from '@anima/nestjs';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// 开发环境启用隧道
if (process.env.NODE_ENV === 'development') {
const tunnel = new AnimaTunnel({
token: process.env.ANIMA_TOKEN,
subdomain: 'my-nest-app',
});
await tunnel.start(3000);
}
await app.listen(3000);
}
bootstrap();
🐍 Python 生态
Flask
安装
pip install anima-flask
使用
from flask import Flask
from anima import AnimaTunnel
import os
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello Flask!'
if __name__ == '__main__':
# 开发环境自动启用隧道
if os.getenv('FLASK_ENV') == 'development':
with AnimaTunnel(
token=os.getenv('ANIMA_TOKEN'),
subdomain='my-flask-app'
) as tunnel:
print(f'🌐 公网地址: {tunnel.url}')
app.run(debug=True)
else:
app.run()
运行
FLASK_ENV=development ANIMA_TOKEN=your-token python app.py
# 输出:
# * Running on http://127.0.0.1:5000
# 🌐 公网地址: https://my-flask-app.anima4.cn
Django
安装
pip install anima-django
配置
# settings.py
# 开发环境配置
if DEBUG:
INSTALLED_APPS += ['anima_django']
ANIMA_CONFIG = {
'token': os.getenv('ANIMA_TOKEN'),
'subdomain': 'my-django-app',
'auto_start': True,
}
中间件(可选)
# settings.py
MIDDLEWARE = [
'anima_django.middleware.AnimaTunnelMiddleware',
# ... 其他中间件
]
运行
ANIMA_TOKEN=your-token python manage.py runserver
# 输出:
# Starting development server at http://127.0.0.1:8000/
# 🚀 Anima 隧道已启动
# 🌐 公网地址: https://my-django-app.anima4.cn
FastAPI
安装
pip install anima-fastapi
使用
from fastapi import FastAPI
from anima import AnimaTunnel
import os
import uvicorn
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello FastAPI"}
if __name__ == "__main__":
# 开发模式启用隧道
if os.getenv('ENV') == 'development':
tunnel = AnimaTunnel(
token=os.getenv('ANIMA_TOKEN'),
subdomain='my-fastapi-app'
)
with tunnel:
print(f'🌐 公网地址: {tunnel.url}')
uvicorn.run(app, host="0.0.0.0", port=8000)
else:
uvicorn.run(app, host="0.0.0.0", port=8000)
🐘 PHP 生态
Laravel
安装
composer require anima/laravel
配置
// config/anima.php
return [
'enabled' => env('ANIMA_ENABLED', env('APP_ENV') === 'local'),
'token' => env('ANIMA_TOKEN'),
'subdomain' => env('ANIMA_SUBDOMAIN', 'my-laravel-app'),
'auto_start' => true,
];
环境变量
# .env
ANIMA_ENABLED=true
ANIMA_TOKEN=your-token-here
ANIMA_SUBDOMAIN=my-laravel-app