app-magic-box

跨平台应用魔法盒子

Usage no npm install needed!

<script type="module">
  import appMagicBox from 'https://cdn.skypack.dev/app-magic-box';
</script>

README

注意:node版本 >= 8.9

注意事项

1. 项目在抹平平台差异时,尽量保证web端用户能够无缝衔接。
2. 项目中不能直接引入vue,vue-router,vuex库(如果引入的话,虽然依赖包放在dev依赖上,但是
webpack依然会将引入的包打包进代码里,这样会让使用库的人重复引入代码)
   如果需要类型,则可以引用vue/types vue-router/types

代码规范

项目使用eslint的ts版本作为代码规范,但是项目中可能还有些eslint不易检查的一些规范,
这里稍微列举一下。
1.项目中所有文件名以小写驼峰命名(例:applicationConfig.ts)。
2.项目中class以大写驼峰命名(例:Application)
3.项目中尽量使用type来定义数据结构,interface定义class接口
4.项目中尽量对所有使用到的class,methods,enum,type,interface等书写注释,尽量浅显易懂,也为了更好的生成doc文档(项目中使用typedoc来生成doc文档)
5.项目中尽量不要添加dependencies类型的依赖,如有,请提出,并与大家商量。
6.项目中尽量不要有重复代码,如有,请尽量抽取出来。

Project setup

// XXX为当前实际地址
git clone

npm install

项目打包

npm run build

执行打包会将代码打包到dist目录下:cross-common.js

项目发布

npm run publish-patch 项目发布修补版本
npm run publish-minor 项目发布小版本

项目文档生成

npm run doc
会对src下的代码生成api文档放置到docs目录下

Lints and fixes files

npm run lint 修复src下的代码
npm run lintAll 修复整个项目中的代码,会去除.eslintignore中的目录
npm run format 对src下的代码进行美化

文件结构

+-- src/
|   +-- common/            // 公用资源
|   |   +-- constants/     // 公共常量
|   |   +-- utils/         // 常用函数

|   +-- core/          // 项目核心代码
|   |   +-- app/       // app类
|   |   +-- base/      // 提供项目中的基础类
|   |   +-- mgrs/      // 项目中的重点部分,各个管理器
|   |   +-- runtime/   // 运行时对象
|   |   +-- utils/     // 项目中的工具函数等

|   +-- main.ts        // 项目入口
|   |  ............
|
|
|-- .gitignore            // git的排除目录
|-- .eslintignore         // eslint的排除目录
|-- .eslintrc.js          // eslint 配置文件
|-- babel.config.js       // babel 配置文件
|-- package.json          // 项目包文件
|-- prettier.config.js    // prettier配置文件
|-- tsconfig.json         // typescript 配置
|-- webpack.common.js     // webpack通用配置
|-- webpack.dev.js        // webpack dev配置
|-- webpack.prod.js       // webpack prod配置

文档

TypeScript文档 [webpack] [babel] [eslint] [typedoc] ...