1.0.2 • Published 3 years ago

full-node-cli v1.0.2

Weekly downloads
134
License
ISC
Repository
-
Last release
3 years ago

full-node-cli

功能介绍

full-node-cli 是前端多框架全栈一体化脚手架,前端支持vue,react 与后端nodejs EggJs/MidwayJs 框架很好的结合,内置常规的前后端插件,方便快速开发。

内置功能点

  • 前端多语言框架支持,vue, react,umi
  • node后端使用的是MidwayJs框架,内置 Mysql,Sequelize模型orm框架 ,umzug数据迁移工具,Typescript ,等工具。

​ MidwayJs 文档: https://www.yuque.com/midwayjs/midway_v2

​ Sequelize 文档:https://www.sequelize.com.cn/

安装教程

# 安装脚手架
npm install full-node-cli -g

创建项目

# 初始化脚手架文件
full create hello-world(项目名称)

选择前端vue 或 react 全栈一体框架

🍡 react,umi,egg/midway

🍭 vue,egg/midway

选择继续按提示完成操作

安装依赖

# 安装前后端依赖
npm run i

启动开发环境

# 启动前端开发环境
npm run c

# 启动后台开发环境
npm run s

开启后端数据库模型

修改配置文件 server/src/config/config.default.ts

注:根据项目需求确定是否用到数据库,不需要设置为 config.useSql = false

  // 开启使用数据库模型 
  config.useSql = true

	// 配置sequelize 的 数据库信息
  config.sequelize = {
    dialect: 'mysql', // 数据库类型
    host: '127.0.0.1', // 数据库服务ip地址
    port: '3306', // 端口
    database: 'database', // 数据库名称
    username: 'root', // 用户名称
    password: '123456', // 密码
    timezone: '+08:00',
    modelFile: isProd ? 'js' : 'ts', // 模型文件后缀名 (建议保持原样)
    logging: false, // 是否开启 log打印
    dialectOptions: {
      dateStrings: true,
      typeCast: (field: any, next: () => void) => {
        if (field.type === 'DATETIME') {
          return field.string()
        }
        return next()
      }
    }
  }

开启数据迁移功能

修改配置文件 server/src/config/config.default.ts

注:根据项目需求确定是否用到数据库迁移,不需要设置为 config.useUmzug = false

 // 启用更新数据库脚本
  config.useUmzug = true

新建更新数据库脚本,存放在 server/src/models/migrations目录

例如:添加update-1.0.1.ts文件 (更新数据库脚本文件,把 text_user 表添加一个 tel_number 字段)

import { QueryInterface, Sequelize } from 'sequelize'
import { DataType } from 'sequelize-typescript'

type Migration = {
  name: string
  path?: string
  context: {
    queryInterface: QueryInterface
    sequelize: Sequelize
  }
}

export const up = async ({ name, path, context: { queryInterface } }: Migration) => {
  try {
    console.log('upgrade db => ', name, path)
    // 更新表脚本
    await queryInterface.addColumn('text_user', 'tel_number', DataType.STRING())

  } catch (error) {
    console.log(error, 'error===')
  }
}

编译打包

# 整站编译打包
npm run build

打完包之后,本地启动后端开发环境

npm run s

直接访问 http://127.0.0.1:7001 就可以访问前端编译后的页面了。(注:在没有执行打包命令,后端开发环境访问页面都是上一次打包的版本)

部署

使用纯 Node.js 或者 pm2 等工具部署,可以参考官方文档:https://www.yuque.com/midwayjs/midway_v2/deployment

ps:开发遇到问题的可以留言 565657400@qq.com