我猜你須要一個像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一下~

相關文章
相關標籤/搜索