[MD]
# LSE TypeScript Template
- 定义新的开发方式
### 📖 项目简介
LSE TypeScript 模板是一个用于创建 LeviLamina LSE 的现代化 TypeScript 开发模板。它提供了完整的开发工具链,支持最新的 TypeScript 语法和 ES 模块,让您能够快速开发高性能的 Minecraft 服务器插件。
GitHub 仓库: [https://github.com/dmblock/lse-typescript-template](https://github.com/dmblock/lse-typescript-template)
### ✨ 特性
- 🚀 **现代化开发体验**:使用 TypeScript 5.9+ 和 ES 模块
- ⚡ **快速构建**:基于 Rolldown 的高性能构建工具
- 🔧 **完整类型支持**:内置 `@levimc-lse/types` 类型定义
- 📦 **自动打包**:将多个模块自动打包为单个文件
- 🔄 **热重载开发**:支持开发模式下的文件监听和自动重建
- 🎯 **代码提示**:完整的 IntelliSense 和自动补全支持
- 📁 **模块化结构**:清晰的目录结构和模块分离
### 🚀 快速开始
#### 前提条件
- Node.js 18+ 或更高版本
- pnpm 10.23.0+(推荐)或 npm / yarn
- LeviLamina 服务器环境
#### 安装
1. **克隆仓库**
```bash
git clone https://github.com/dmblock/lse-typescript-template.git
cd lse-typescript-template
```
2. **安装依赖**
```bash
pnpm install
```
或使用 npm:
```bash
npm install
```
3. **开发模式**
```bash
pnpm dev
```
这将启动开发服务器,监听文件变化并自动重建。
4. **构建项目**
```bash
pnpm build
```
构建产物将输出到 `dist/bundle.js`。
您需要把bundle.js改成您所需的插件名称
### 📚 使用教程
#### 项目结构
```
lse-typescript-template/
├── src/
│ ├── index.ts # 主入口文件
│ └── config.ts # 配置文件(可选)
├── dist/ # 构建输出目录
├── rolldown.config.ts # 构建配置
├── tsconfig.json # TypeScript 配置
├── package.json # 项目依赖和脚本
└── README.md # 项目文档
```
#### 编写代码
在 `src/index.ts` 中,您可以直接使用 `mc`、`ll` 等全局模块,完全支持 TypeScript 类型提示:
```typescript
// 监听玩家加入事件
mc.listen('onJoin', (player) => {
log(`${player.name} 加入了服务器!`)
player.sendToast(`欢迎来到服务器,${player.name}!`, '玩得开心!')
})
```
#### 导入其他模块
您可以使用 ES 模块语法导入其他文件:
```typescript
import { config } from './config'
// 使用导入的配置
log(`服务器名称: ${config.serverName}`)
```
#### 配置说明
- **TypeScript 配置** (`tsconfig.json`):已配置为支持 LeviLamina LSE 开发,目标为 ES2024,使用 CommonJS 模块
- **构建配置** (`rolldown.config.ts`):使用 Rolldown 打包,输入为 `src/index.ts`,输出为 `dist/bundle.js` (CommonJS 格式)
- **环境变量**:支持 `.env` 文件(通过 dotenv 依赖)
#### 开发工作流
1. **开始开发**:运行 `pnpm dev` 进入开发模式
2. **编写代码**:在 `src/` 目录下创建新的 TypeScript 文件
3. **测试代码**:将构建后的 `dist/bundle.js` 复制到 LeviLamina 服务器的插件目录
4. **调试**:查看服务器日志以调试您的插件
5. **构建发布**:运行 `pnpm build` 生成最终版本
### 📦 可用脚本
- `pnpm dev` - 启动开发模式,监听文件变化并自动重建
- `pnpm build` - 构建生产版本到 `dist/bundle.js`
- `pnpm install` - 安装项目依赖
### 🛠️ 开发指南
#### 添加新依赖
```bash
pnpm add <package-name>
```
#### 类型定义
项目已包含 `@levimc-lse/types`,提供了完整的 Minecraft 服务器 API 类型定义。您可以在代码中直接使用这些类型,获得完整的代码提示。
#### 自定义构建配置
如果需要修改构建配置,可以编辑 `rolldown.config.ts` 文件:
```typescript
import { defineConfig } from 'rolldown'
export default defineConfig({
input: 'src/index.ts',
output: {
file: 'dist/bundle.js',
format: 'cjs',
sourcemap: true, // 启用源映射以方便调试
},
external: ['ll', 'mc'],
platform: 'node',
tsconfig: './tsconfig.json',
})
```
#### 环境变量配置
创建 `.env` 文件来配置环境变量:
```env
SERVER_NAME=My Minecraft Server
DEBUG_MODE=true
```
然后在代码中使用:
```typescript
import 'dotenv/config'
console.log(process.env.SERVER_NAME)
```[/MD]