Simple Thermostat 项目教程
1. 项目的目录结构及介绍
simple-thermostat/
├── examples/
├── src/
├── .gitignore
├── .releaserc.json
├── LICENSE
├── README.md
├── hacs.json
├── jest.config.js
├── package.json
├── rollup.config.js
├── simple-thermostat-compact.png
├── thermostat-card.png
├── tracker.json
├── tsconfig.json
└── yarn.lock
目录结构介绍
- examples/: 包含项目的示例文件,用于展示如何使用该卡片的配置。
- src/: 包含项目的主要源代码文件,包括 TypeScript 和 CSS 文件。
- .gitignore: 指定 Git 版本控制系统忽略的文件和目录。
- .releaserc.json: 包含发布配置的文件,用于自动化发布流程。
- LICENSE: 项目的开源许可证文件,本项目使用 MIT 许可证。
- README.md: 项目的介绍文档,包含项目的概述、安装和使用说明。
- hacs.json: HACS(Home Assistant Community Store)的配置文件,用于在 HACS 中展示和管理该卡片。
- jest.config.js: Jest 测试框架的配置文件,用于配置测试环境。
- package.json: 项目的 npm 配置文件,包含项目的依赖和脚本。
- rollup.config.js: Rollup 打包工具的配置文件,用于打包项目代码。
- simple-thermostat-compact.png: 项目的图标文件。
- thermostat-card.png: 项目的图标文件。
- tracker.json: 项目的状态跟踪文件,可能用于 CI/CD 流程。
- tsconfig.json: TypeScript 的配置文件,用于配置 TypeScript 编译选项。
- yarn.lock: Yarn 包管理器的锁定文件,用于确保依赖版本的一致性。
2. 项目的启动文件介绍
项目的启动文件主要是 src/
目录下的 TypeScript 文件。这些文件负责定义和实现 Home Assistant 的自定义 Lovelace 卡片。
主要启动文件
- src/index.ts: 项目的入口文件,负责初始化和加载自定义卡片。
- src/simple-thermostat.ts: 定义了 Simple Thermostat 卡片的主要逻辑和 UI 组件。
3. 项目的配置文件介绍
package.json
package.json
文件包含了项目的元数据和依赖信息。以下是一些关键配置项:
{
"name": "simple-thermostat",
"version": "2.5.0",
"description": "A different take on the thermostat card for Home Assistant",
"main": "src/index.ts",
"scripts": {
"build": "rollup -c",
"test": "jest"
},
"dependencies": {
"home-assistant-js-websocket": "^5.0.0"
},
"devDependencies": {
"@types/jest": "^26.0.0",
"jest": "^26.0.0",
"rollup": "^2.0.0"
}
}
tsconfig.json
tsconfig.json
文件用于配置 TypeScript 编译器选项。以下是一些关键配置项:
{
"compilerOptions": {
"target": "ES6",
"module": "ESNext",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src/**/*"]
}
rollup.config.js
rollup.config.js
文件用于配置 Rollup 打包工具。以下是一些关键配置项:
import typescript from '@rollup/plugin-typescript';
export default {
input: 'src/index.ts',
output: {
file: 'dist/simple-thermostat.js',
format: 'esm'
},
plugins: [typescript()]
};
通过以上配置文件,可以了解项目的构建和测试环境,以及如何启动和配置该项目。