# koa-typescript-starter **Repository Path**: morris-mao/koa-typescript-starter ## Basic Information - **Project Name**: koa-typescript-starter - **Description**: koa-typescript的api开发脚手架项目 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-10 - **Last Updated**: 2022-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 这是一个KOA的脚手架项目——保姆级项目搭建教程 ## 项目说明 --- * typescript https://www.typescriptlang.org/ 一个语法编译器,可将ts文件编译成ES语法的js文件 --- * koa https://koa.bootcss.com/ koa不必多说 * koa-body https://koa.bootcss.com/ koa插件->解析html文档中的body * @types/koa koa的类型声明文件 --- * nodemon https://www.npmjs.com/package/nodemon 开发监视工具,实现热更新 ./nodemon.json 配置文件 * ts-node https://www.npmjs.com/package/ts-node 可直接运行ts的引擎 * dotenv https://www.npmjs.com/package/dotenv 使用项目目录下的.env文件配置环境变量 ## 项目启动 该项目需要node 14以上 ``` npm start // 是 npm run start的简写 npm run build // 是编译代码到输出目录(可在ts配置文件中修改,这里是'dist') npm run dev // 通过 nodemon 启动项目,热更新,方便开发 ``` ## 项目搭建,命令行-日志 ### 第一天 > 注:npx是运行当前项目下的 node_modules/.bin/tsc(.bat|.cmd|.sh) ```js npm init // 初始化项目,生成package.json文件 npm install typescript --save-dev // 安装typescript 到项目开发依赖 npx tsc --init // 初始化ts配置文件 npm install --save koa // 安装koa npm install -save-dev @types/Koa // 安装koa类型声明文件 npm install --save-dev nodemon // 安装开发目录监视工具,项目热更新 npm install koa-body // 安装body解析中间件 npm install ts-node // 安装ts运行引擎 npm install dotenv // 安装环境变量声明文件 ``` ### 第二天 1. 增加路由的使用方法,安装koa-router 2. 添加了npm配置文件 3. 添加了editorconfig配置文件 4. 增加了koa-body的使用 5. 添加了vscode F5 debugger 调试工具启动配置 ```js npm i koa-router // koa-router 安装路由,可以使用 npm i @types/koa-router // koa-router 的类型定义文件 ``` ### 第三天:增加控制器,路由配合控制器使用 1. core文件夹存放框架核心文件 2. controller文件夹存放控制器 3. 控制器可以自己根据项目实际情况进行划分 ### 第四天:将启动过程,以面向对象方式重写 > @符号为组织作用域包,表示该包为该组织所有,只有该项目的官方人员有权限发布npm包 1. 将tsconfig文件修改成从confgi文件夹继承 2. 增加“@types”文件夹,该文件夹用于定义非typescript编写的包的类型 3. ./src/config目录是代码相关的配置,./config目录是开发相关的配置 4. 增加 @koajs/cors ,以及类型定义文件 @type/koa__cors 用于解决跨域 5. 发现koa-body 不是官方包 删除后替换为 @koa-bodyparser 并安装 @type/koa__bodyparser 6. 将koa-router 替换为 @koa-router 并安装 @type/koa__router ```js npm i killports npm i @koa__cors npm i @koa/cors npm uni koa-body npm i koa-bodyparser npm i @types/koa-bodyparser npm uni koa-router npm i @koa/router npm uni @types/koa-router npm i --save-dev @types/koa__router ``` ### 第五天:添加eslint以及vscode自动格式化配置,格式化代码 ```js npm i -D eslint // 安装eslint开发依赖 npx eslint --init // 初始化eslint配置 ``` ### 第六天:添加了静态资源目录,和网站图标 ```js npm i koa-static // 安装koa-static 将目录配置在./src/static :例如https://127.0.0.1:3000/favicon.ico 将访问./src/static/favicon.ico文件 npm i --save-dev @types/koa-static ``` ### 第七天:添加中间件的使用案例 文件夹 ./src/middleware 包含路由中间件和公共中间件,根据实际情况可自行修改,例如token的验证可以放在中间件内