zhangyuhan 3 лет назад
Родитель
Сommit
58c9961d03
2 измененных файлов с 94 добавлено и 1 удалено
  1. 3 1
      src/commands/create/index.ts
  2. 91 0
      src/template.ts

+ 3 - 1
src/commands/create/index.ts

@@ -1,5 +1,5 @@
 import { Command } from '@oclif/core'
-import { TEMPLATES, TemplateNames } from '../../template'
+import { TEMPLATES, TemplateNames, PackagePrompt, ComponentPrompt } from '../../template'
 import * as inquirer from 'inquirer'
 import Init from '../init'
 
@@ -30,6 +30,8 @@ export default class Create extends Command {
         })),
         message: '选择项目模板',
       },
+      ...PackagePrompt,
+      ...ComponentPrompt
     ])
 
     await Init.run(['-f', config.template, config.name])

+ 91 - 0
src/template.ts

@@ -11,10 +11,101 @@ export interface Templates {
 }
 
 const TEMPLATES: Templates = require(path.resolve(__dirname, '../.template.json'))
+const PACKAGE = require(path.resolve(__dirname, '../package.json'))
 
 const TemplateNames = Object.keys(TEMPLATES)
 
+const PackagePrompt = [
+  {
+    type: 'input',
+    name: 'packageName',
+    message: '输入包名称',
+    default: function ({ name = ''} = {}) {
+      return name
+    },
+    when: function ({ template = '' } = {}) {
+      return template === 'package'
+    },
+    validate: function (s = '') {
+      const result = /^[a-z|A-z|\-]+$/.test(s)
+      return result ? result : '不支持@scope,示例:输入 new-package ==> @jianyu/new-package'
+    }
+  },
+  {
+    type: 'input',
+    name: 'packageDescribe',
+    message: '输入包描述',
+    default: function ({ packageName = ''} = {}) {
+      return packageName
+    },
+    when: function ({ template = '' } = {}) {
+      return template === 'package'
+    },
+  },
+  {
+    type: 'input',
+    name: 'packageAuthor',
+    message: '输入包作者',
+    default: 'jianyu-efe',
+    when: function ({ template = '' } = {}) {
+      return template === 'package'
+    },
+  }
+]
+
+const ComponentPrompt = [
+  {
+    type: 'input',
+    name: 'packageName',
+    message: '输入组件包名称',
+    default: function ({ name = ''} = {}) {
+      return name
+    },
+    when: function ({ template = '' } = {}) {
+      return template === 'component'
+    },
+    validate: function (s = '') {
+      const result = /^[a-z|A-z|\-]+$/.test(s)
+      return result ? result : '不支持@scope,示例:输入 new-package ==> @jianyu/new-component'
+    }
+  },
+  {
+    type: 'input',
+    name: 'packageLib',
+    message: '输入编译后 UMD 名称 (对应编译后文件名称)',
+    default: function ({ packageName = ''} = {}) {
+      return packageName
+    },
+    when: function ({ template = '' } = {}) {
+      return template === 'component'
+    }
+  },
+  {
+    type: 'input',
+    name: 'packageDescribe',
+    message: '输入描述',
+    default: function ({ packageName = ''} = {}) {
+      return packageName
+    },
+    when: function ({ template = '' } = {}) {
+      return template === 'component'
+    },
+  },
+  {
+    type: 'input',
+    name: 'packageAuthor',
+    message: '输入包作者',
+    default: 'jianyu-efe',
+    when: function ({ template = '' } = {}) {
+      return template === 'component'
+    },
+  }
+]
+
 export {
   TEMPLATES,
   TemplateNames,
+  PackagePrompt,
+  ComponentPrompt,
+  PACKAGE
 }