erisl-crm-cli v1.0.73
ERISL CRM CLI
命令
- erisl-crm-cli init 初始化项目
- erisl-crm-cli create 创建模板页面
- erisl-crm-cli delete 删除模板页面
- erisl-crm-cli dev 开发模式
- erisl-crm-cli start 生产模式
- erisl-crm-cli build 编译
- erisl-crm-cli export 导出静态页面
参数
- dictionary: 在 export/init 的时候使用, 默认 out, 譬如: erisl-crm-cli init|export dictionary=webapp 或者 erisl-crm-cli init|export webapp
- controller: 在 create/delete 的时候使用, 必须有。譬如: erisl-crm-cli create|delete math
- action: 在 create/delete 的时候使用, 默认 manage, 跟在 controller 后面, 譬如 erisl-crm-cli create|delete math test
根目录新增 next.config.js
const { nextConfig } = require('erisl-crm-cli')
const projectConfig = require('./project.config')
const { version, prefix, protocol, host, port } = projectConfig 
module.exports = (phase, defaultConfig) => {
    let configObj = nextConfig(phase, defaultConfig, { 
        version, prefix, protocol, host, port
    })
    return configObj
}根目录新增 mysql.config.js
const { mysqlConfig } = require('erisl-crm-cli')
const { mysqlOptions } = mysqlConfig
const { user, password, host, port, database } = mysqlOptions
module.exports = {
    mysqlOptions: {
        user,
        password,
        host,
        port,
        database
    }
}根目录新增 project.config.js
const { projectConfig } = require('erisl-crm-cli')
const { version, prefix, protocol, host, port } = projectConfig
module.exports = {
    version,
    prefix,
    protocol,
    host, 
    port
}根目录新增 server
- apis 存放 Rest Api
- modules 存放 graphql 的 resolver 和 schema
- plugins 存放 graphql 的 plugin
- .js 举例: test.js => 用于响应 /test/, ${prefix}/test/* 请求
  const express = require('express')
  const moment = require('moment')
  const router = express.Router()
  router.use((req, res, next) => {
      const fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl
      console.log(moment().format('YYYY-MM-DD HH:mm:ss') + ' ' + fullUrl)
      next()
  })
  router.get('/*', (req, res) => {
      res.statusCode = 200
      res.json({ name: 'TEST' })
  })
  module.exports = router- apis/hello.js
const express = require('express')
const router = express.Router()
router.get('/*', (req, res) => {
    res.statusCode = 200
    res.json({ name: 'Hello' })
})
module.exports = router- modules/link/schema.js
module.exports = {
    query: `
        link: String
    `,
    mutation: `
        linkUpdate(link: Date): String
    `,
    subscription: ``,
    type: ``
} - modules/link/resolver.js
let localLink = ''
module.exports = {
    link: () => {
        return localLink
    },
    linkUpdate: ({ link }) =>{
        console.log('link', link)
        localLink = link
        return localLink
    }
}- plugins/date.js
const moment = require('moment')
const { Kind } = require('graphql/language')
const { GraphQLScalarType } = require('graphql')
const customScalarDate = new GraphQLScalarType({
    name: 'Date',
    description: 'Date custom scalar type',
    parseValue: value => moment(value).valueOf(),
    serialize: value => moment(value).format('YYYY-MM-DD HH:mm:ss:SSS'),
    parseLiteral: ast => (ast.kind === Kind.INT)
        ? parseInt(ast.value, 10)
        : null
})
module.exports = { Date: customScalarDate }5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago