0.3.0 • Published 3 years ago
@carverry/core v0.3.0
@carverry/core 
这个包承接了carverry的命令行、UI和本地应用直接的通信服务、核心插件等相关业务;
项目结构
cli:脚手架相关功能;plugins:核心插件,主要处理IO相关的功能;server:包含一个迷你json数据库文件、基于websocket的通信服务和一个纯http服务(给@carverry/app提供相应信息的获取和交互);template:模板文件,用于初始化;typings:TS类型定义;utils:项目通用工具函数;
技术栈
ts-node:node的一个TS运行时,即可以在node环境下直接运行TS;farrow:基于TS的轻量化服务框架,语法简单;ws:提供websocket相关服务;commander:定制命令行参数;inquirer:可交互式命令行;ora:命令行loading状态;chalk:彩色,格式化命令行输出;
基于ts-node的纯ESM写法
整个项目基于ESM写法,所以有些地方需要注意一下;
- ESM support: soliciting feedback · Issue #1007 · TypeStrong/ts-node:
ts-node官方指南 - Pure ESM package:万恶之源,由于要使用这个
lowdb包,这个包最新版本只提供纯ESM版本 - How to import JSON files in ES modules (Node.js) | Stefan Judis Web Development:如何在
node esm模式下加载json文件
限制
- 不能直接使用
__dirname变量 --experimental-loader选项(指定node loader)仍是一个实验选项,在未来版本可能会有改变;