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

前言

相信大家在开发前端的项目时都尝试使用vue-cil之类的脚手架工具来初始化项目,通过这类工具我们可以快速的得到一个包含webpack、babel和基本框架代码的项目模板极大地提升了开发效率也降低了上手的难度。

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

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

食用方法

安装方式:

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

复制代码

初始化项目:

cd yourproject
npm install
复制代码

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

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

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

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

目录结构

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

环境设置

webpack设置

你可以通过在bus.config.js中定义一个webpack方法来拓展webpack的设置

// 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中

参考以下示例:

{
    "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一下~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值