Mirage JS 开源项目教程
1. 项目的目录结构及介绍
Mirage JS 项目的目录结构如下:
miragejs/
├── bin/
├── dist/
├── docs/
├── examples/
├── scripts/
├── src/
│ ├── api/
│ ├── db/
│ ├── factories/
│ ├── fixtures/
│ ├── models/
│ ├── serializers/
│ ├── server/
│ ├── test-helpers/
│ ├── utils/
│ ├── index.js
│ ├── server.js
│ └── version.js
├── tests/
├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .prettierrc
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── package.json
└── tsconfig.json
目录介绍
bin/
: 包含一些可执行脚本。dist/
: 包含编译后的文件。docs/
: 包含项目的文档。examples/
: 包含一些示例项目。scripts/
: 包含一些构建和测试脚本。src/
: 包含项目的源代码。api/
: 包含 API 相关的代码。db/
: 包含数据库相关的代码。factories/
: 包含数据工厂相关的代码。fixtures/
: 包含数据固定装置相关的代码。models/
: 包含数据模型相关的代码。serializers/
: 包含序列化器相关的代码。server/
: 包含服务器相关的代码。test-helpers/
: 包含测试辅助工具相关的代码。utils/
: 包含一些工具函数。index.js
: 项目的入口文件。server.js
: 服务器的主文件。version.js
: 包含版本信息。
tests/
: 包含项目的测试代码。.babelrc
: Babel 配置文件。.editorconfig
: 编辑器配置文件。.eslintignore
: ESLint 忽略文件。.eslintrc.js
: ESLint 配置文件。.gitignore
: Git 忽略文件。.prettierrc
: Prettier 配置文件。.travis.yml
: Travis CI 配置文件。CHANGELOG.md
: 变更日志。CONTRIBUTING.md
: 贡献指南。LICENSE
: 许可证。README.md
: 项目说明文档。package.json
: 项目依赖和脚本配置文件。tsconfig.json
: TypeScript 配置文件。
2. 项目的启动文件介绍
Mirage JS 的启动文件主要是 src/index.js
。这个文件是项目的入口点,负责导出 Mirage JS 的主要功能。
// src/index.js
export { createServer } from './server';
export { Response } from './response';
export { Model, hasMany, belongsTo } from './orm';
export { Factory } from './factory';
export { trait } from './trait';
export { association } from './association';
export { Serializer } from './serializer';
export { RestSerializer, JSONAPISerializer } from './serializers';
export { Server } from './server';
export { IdentityManager } from './identity-manager';
export { ModelDefinition } from './model-definition';
export { Collection } from './collection';
export { Db } from './db';
export { DbCollection } from './db-collection';
export { Registry } from './orm';
export { BaseModel } from './orm';
export { ModelInstance } from './orm';
export { ManyArray } from './many-array';
export { Relationship } from './relationship';
export { RelationshipMeta } from './relationship-meta';
export { Attribute } from './attribute';
export { AttributeMeta } from './attribute-meta';
export { Fixture } from './fixture';
export { StaticFixture } from './static-fixture';
export { StaticDatabase } from './static-database';
export { StaticCollection } from './static-collection';
export { StaticModel } from './static-model';
export { StaticModelInstance } from './static-model-instance';
export { StaticRelationship } from './static