bkui-cli-template-webpack4-saas
Version:
bkui-cli-template-webpack4-saas
154 lines (151 loc) • 5.12 kB
JavaScript
/**
* @file 基本的 meta 信息,本文件需要用 es5 的方法编写
*
* Copyright © 2012-2019 Tencent BlueKing. All Rights Reserved. 蓝鲸智云 版权所有
*/
const url = require('url')
module.exports = exports = {
/**
* 提示问题
*
* @type {Object}
*/
PROMPTS: {
name: {
type: 'input',
message: 'Project name',
filter: val => val.trim()
},
description: {
type: 'input',
message: 'Project description',
default: 'Project description',
filter: val => val.trim()
},
author: {
type: 'input',
message: 'Author',
filter: val => val.trim()
},
cssProcessor: {
type: 'list',
message: 'PostCSS or Scss',
choices: ['postcss'],
filter: val => val.trim()
},
// 本地文档地址,必须输入绝对路径
localDocUrl: {
type: 'input',
// message: 'LOCAL_DOC_URL? \u001b[33m @see http://xxxxx \u001b[0m',
message: 'LOCAL_DOC_URL',
default: 'http://localhost',
validate (val) {
try {
// eslint-disable-next-line no-new
new url.URL(val)
return true
} catch (e) {
// 相对路径
return 'Please enter a valid url.'
}
},
filter: val => {
val = val.trim()
if (val.slice(-1) === '/') {
val = val.slice(0, -1)
}
return val
}
},
// 本地文档端口
localDocPort: {
type: 'input',
// message: 'LOCAL_DOC_PORT? \u001b[33m @see http://xxxxx \u001b[0m',
message: 'LOCAL_DOC_PORT',
default: 8081,
validate (val) {
if (/^[0-9]+$/.test(val)) {
return true
}
return 'Please enter a valid port.'
}
},
// 本地开发地址,必须输入绝对路径
localDevUrl: {
type: 'input',
// message: 'LOCAL_DEV_URL? \u001b[33m @see http://xxxxx \u001b[0m',
message: 'LOCAL_DEV_URL',
default: 'http://localhost',
validate (val) {
try {
// eslint-disable-next-line no-new
new url.URL(val)
return true
} catch (e) {
// 相对路径
return 'Please enter a valid url.'
}
},
filter: val => {
val = val.trim()
if (val.slice(-1) === '/') {
val = val.slice(0, -1)
}
return val
}
},
// 本地开发端口
localDevPort: {
type: 'input',
// message: 'LOCAL_DEV_PORT? \u001b[33m @see http://xxxxx \u001b[0m',
message: 'LOCAL_DEV_PORT',
default: 8080,
validate (val) {
if (/^[0-9]+$/.test(val)) {
return true
}
return 'Please enter a valid port.'
}
},
// ajax 异步请求前缀地址,必须输入绝对路径
ajaxUrlPrefix: {
type: 'input',
message: 'AJAX_URL_PREFIX',
default: curAnswer => {
const localDevUrl = curAnswer.localDevUrl
return localDevUrl.slice(-1) === '/'
? `${localDevUrl.slice(0, -1)}:${curAnswer.localDevPort}/api`
: `${localDevUrl}:${curAnswer.localDevPort}/api`
},
validate (val) {
try {
// eslint-disable-next-line no-new
new url.URL(val)
return true
} catch (e) {
// 相对路径
return 'Please enter a valid url.'
}
},
filter: val => val.trim()
},
// 使 ajax 请求进入 mock 逻辑的参数,任何请求,只要 url 上加入这个参数,就会进入 mock 的逻辑,这个参数的值是 /a/b/c 这种的路径
// 对应 ${ROOT}/mock/ajax 下的文件名,invoke 表示这个文件里的方法名
ajaxMockParam: {
type: 'input',
message: 'AJAX_MOCK_PARAM',
// + ' \u001b[35m'
// + '<if this parameter is included in the url, ajax request will enter the mock file>'
// + '\u001b[0m',
default: 'mock-file',
filter: val => val.trim()
},
// 获取用户信息的 ajax 路径
userInfoUrl: {
type: 'input',
message: 'USER_INFO_URL',
default: 'account/get_user_info/',
filter: val => val.trim()
}
}
}