我猜你须要一个像vue-cli同样的后端(node)脚手架

前言

相信你们在开发前端的项目时都尝试使用vue-cil之类的脚手架工具来初始化项目,经过这类工具咱们能够快速的获得一个包含webpack、babel和基本框架代码的项目模板极大地提高了开发效率也下降了上手的难度。html

受到这类框架的启发(主要是Next.js)我尝试建立了一个基于koa2+mongoose的后端脚手架工具 Bus(来不及解释了快上车),主要包含如下功能:前端

  1. 提供cil命令用于初始化项目,运行、打包项目
  2. 包含webpack、babel环境配置支持自定义
  3. 自动根据接口生成swagger文档
  4. 基础逻辑分装在框架库内,开发者只需关注业务逻辑
  5. 提供通用的接口继承(包括get,post,put,delete等通用接口,避免重复劳动)

食用方法

安装方式:vue

npm install -g bus-core
bus init
// or
npx bus-core init

复制代码

初始化项目:node

cd yourproject
npm install
复制代码

修改配置文件 路径:src/config/index.js 参考如下配置:webpack

{
    port: 3000,
    mongodb: {
        url: 'mongodb://test:test@mongoBaseUrl/test'
    }
}
复制代码

运行 npm run dev 成功后打开 http://localhost:3000/api/swagger-htmlgit

ok,项目初始化就完成了(能够看到虽然咱们只声明了3个api接口可是却多了好几个,这些其实都是从commonapi继承过来的)github

目录结构

  • src
    • apis (接口文件)
    • models (mongoose model拓展)
    • schemas (数据表结构)
    • index.js (入口文件)
  • bus.config.js (webpack配置)
  • .babelrc (babel配置)
  • .eslintrc.js (eslint设置)
  • .editorconfig (编辑器设置)

环境设置

webpack设置

你能够经过在bus.config.js中定义一个webpack方法来拓展webpack的设置web

// bus.config.js
module.exports = {
	webpack(config) {
		let loaders = config.module.rules
		loaders.push(	{
			test: /\.html$/,
			loader: 'raw-loader'
		})

		return config
	}
}
复制代码

babel设置

你能够建立一个在项目根目录建立一个.babelrc文件来拓展babel的设置。注意将bus-core/babel加到presets中mongodb

参考如下示例:数据库

{
    "presets" : ["bus-core/babel"],
    "env": {
        "production": {
          "plugins": [
            ["transform-remove-console", { "exclude": [ "error", "warn", "info"] }]
          ]
    }
  }
}
复制代码

CLI 命令

bus init

生成一个项目 (如今只提供base模板)

bus dev

开发环境运行.

当你修改代码时会自动重载,代码错误会以下显示.

bus build

将以生产模式优化构建以得到最佳性能,构建后的代码将输出在 build 目录下.

你能够经过如下命令运行构建后的代码:

node ./build/main.js
复制代码

你的应用已经能够发布了!

结语

本文只是对Bus框架的简要说明,若是你想更深刻的了解请移步github(点这里)

以后计划会推出关系数据库版(基于sequelize),若是你们以为还不错的话请顺手star一下~

相关文章
相关标签/搜索