# 前言
# 项目简介
FS-Context是 一个名叫FallingShrimp的Furry觉得做拓展简直就是种折磨于是闲着没事研究的 一个易用的TypeScript上下文,用于开发通用于TurboWarp/GandiIDE
等ScratchMod的积木拓展。提供了一些拓展开发中较常用的工具/脚手架。
本项目仅仅由于个人兴趣而完成,开发目的仅为探索,也许代码也有优化空间,欢迎各位大佬提出建议。
# 项目初衷
不管在什么平台下,开发拓展都非常的折磨,缺少类型提示/自动补全/代码不易读,以及不同平台对runtime
和vm
的沙盒机制都有严重差异。通用拓展需要编写非常多的并不必要的冗余代码。
因此,本项目旨在提供一些TS类型提示
与工具集
,同时将不同平台加载拓展/获取vm等频繁且常用的操作封装,开发者不需要重复制造轮子,可以专注于积木逻辑的开发。
# 项目结构
root
- config/
| - loader.ts
| - server.js
||| - ...
- node_modules/
| - ...
- src/
| - fs-context/
||| - ...
| - extension.ts
||| - ...
- package.json
- tsconfig.json
- index.html
- webpack.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 文件/夹 解释
extension.ts
:拓展入口文件,定义了l10n、积木、菜单等内容fs-context
:框架核心代码config/loader.ts
:拓展加载器的配置文件config/server.js
:调试服务器的配置文件package.json
:包配置文件tsconfig.json
:TypeScript配置文件webpack.config.js
:Webpack配置文件index.html
:WaterBox界面的HTML模板
# 快速上手
只需三步
注意:不要使用npm来管理包!它会生成错误的依赖树!
- 安装依赖
yarn install
1
- 启动开发服务器
yarn dev:ui
1
- 进行ESLint检查
yarn lint
1
- 自动修复ESLint错误
yarn lint:fix
1
- 编译生产环境代码
yarn dist:ext
1
对于新的拓展API文档,访问概念和API
# 欢迎贡献
Github (opens new window)
欢迎提交Issue
或Pull Request
,欢迎Star
。
已储存的提议和建议
(opens new window) 使用TS的装饰器特性定义拓展积木
(opens new window) 新写法的积木文本解析器
(opens new window) 添加eslint支持
(opens new window) 自定义积木参数类型和对应加载器
(opens new window) 实现动态参数,类似Rest
# 项目贡献者
(opens new window) FallingShrimp
(opens new window) FurryR
(opens new window) Cyberexplorer
(opens new window) MoreBugOfDog