开源项目 create-graphql
使用教程
1. 项目的目录结构及介绍
create-graphql
项目的目录结构如下:
create-graphql/
├── bin/
├── docs/
├── examples/
├── lib/
├── scripts/
├── src/
├── test/
├── .babelrc
├── .editorconfig
├── .eslintrc
├── .gitignore
├── .npmignore
├── .travis.yml
├── LICENSE
├── package.json
├── README.md
目录介绍
bin/
: 包含项目的可执行文件。docs/
: 包含项目的文档文件。examples/
: 包含项目的示例代码。lib/
: 包含编译后的代码。scripts/
: 包含项目的脚本文件。src/
: 包含项目的源代码。test/
: 包含项目的测试代码。.babelrc
: Babel 配置文件。.editorconfig
: 编辑器配置文件。.eslintrc
: ESLint 配置文件。.gitignore
: Git 忽略文件配置。.npmignore
: npm 忽略文件配置。.travis.yml
: Travis CI 配置文件。LICENSE
: 项目许可证。package.json
: 项目依赖和脚本配置。README.md
: 项目说明文档。
2. 项目的启动文件介绍
项目的启动文件位于 src/index.js
,该文件是项目的入口点,负责初始化和启动应用。
// src/index.js
import { createServer } from 'http';
import { ApolloServer } from 'apollo-server-express';
import express from 'express';
import { typeDefs, resolvers } from './schema';
const app = express();
const server = new ApolloServer({
typeDefs,
resolvers,
});
server.applyMiddleware({ app });
const httpServer = createServer(app);
httpServer.listen({ port: 4000 }, () => {
console.log(`🚀 Server ready at http://localhost:4000${server.graphqlPath}`);
});
启动文件介绍
express
: 引入 Express 框架。ApolloServer
: 引入 Apollo Server 用于 GraphQL 服务。typeDefs
和resolvers
: 引入 GraphQL 的类型定义和解析器。server.applyMiddleware({ app })
: 将 Apollo Server 中间件应用到 Express 应用。httpServer.listen
: 启动 HTTP 服务器并监听端口 4000。
3. 项目的配置文件介绍
.babelrc
Babel 配置文件,用于转译 JavaScript 代码。
{
"presets": ["@babel/preset-env"]
}
.eslintrc
ESLint 配置文件,用于代码风格检查。
{
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"rules": {
"no-console": "off"
}
}
package.json
项目依赖和脚本配置文件。
{
"name": "create-graphql",
"version": "1.0.0",
"main": "lib/index.js",
"scripts": {
"start": "node src/index.js",
"build": "babel src --out-dir lib",
"test": "jest"
},
"dependencies": {
"apollo-server-express": "^2.19.0",
"express": "^4.17.1"
},
"devDependencies": {
"@babel/cli": "^7.12.10",
"@babel/core": "^7.12.10",
"@babel/preset-env": "^7.12.11",
"jest": "^26.6.3"
}
}
README.md
项目说明文档,包含项目的安装、使用和贡献指南。