优化
This commit is contained in:
132
apps/cli/templates/plopfile.js
Normal file
132
apps/cli/templates/plopfile.js
Normal file
@@ -0,0 +1,132 @@
|
||||
const path = require('path');
|
||||
const _ = require('lodash')
|
||||
|
||||
function pickPluginName(text) {
|
||||
const [_1, _2, ...others] = text.split('.');
|
||||
return others.join('-');
|
||||
}
|
||||
function upperFirst(text) {
|
||||
return _.upperFirst(_.camelCase(text));
|
||||
}
|
||||
|
||||
module.exports = function (
|
||||
/** @type {import('plop').NodePlopAPI} */
|
||||
plop
|
||||
) {
|
||||
plop.setHelper('pickPluginName', pickPluginName);
|
||||
plop.setHelper('pickPluginNameUp', (text) => {
|
||||
return upperFirst(pickPluginName(text));
|
||||
});
|
||||
|
||||
const namePrompts = [
|
||||
{
|
||||
type: 'input',
|
||||
name: 'name',
|
||||
require: true,
|
||||
message: 'Plugin Name',
|
||||
}
|
||||
]
|
||||
|
||||
const serverPrompts = [
|
||||
{
|
||||
type: 'input',
|
||||
name: 'id',
|
||||
require: true,
|
||||
default: 'com.msgbyte.example',
|
||||
message: 'Plugin unique id, a unique string in reverse domain name format',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
name: 'author',
|
||||
message: 'Plugin Author',
|
||||
default: 'anonymous',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
name: 'desc',
|
||||
message: 'Plugin description',
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
|
||||
// 服务端插件的前端模板代码
|
||||
plop.setGenerator('client-plugin', {
|
||||
description: 'Pure frontend plugin template',
|
||||
prompts: [
|
||||
...namePrompts,
|
||||
...serverPrompts,
|
||||
],
|
||||
actions: [
|
||||
{
|
||||
type: 'addMany',
|
||||
destination: path.resolve(process.cwd(), './plugins'),
|
||||
base: './client-plugin',
|
||||
templateFiles: [
|
||||
'./client-plugin/**/*',
|
||||
],
|
||||
skipIfExists: true,
|
||||
globOptions: {},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
// 服务端插件的前端模板代码
|
||||
plop.setGenerator('server-plugin', {
|
||||
description: 'Pure backtend plugin template',
|
||||
prompts: serverPrompts,
|
||||
actions: [
|
||||
{
|
||||
type: 'addMany',
|
||||
destination: path.resolve(process.cwd(), './plugins'),
|
||||
base: './server-plugin',
|
||||
templateFiles: ['./server-plugin/**/*'],
|
||||
skipIfExists: true,
|
||||
globOptions: {},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
// 服务端插件的前端模板代码
|
||||
plop.setGenerator('server-plugin-web', {
|
||||
description: 'web plugin in backtend plugin template',
|
||||
prompts: [
|
||||
...namePrompts,
|
||||
...serverPrompts,
|
||||
],
|
||||
actions: [
|
||||
{
|
||||
type: 'addMany',
|
||||
destination: path.resolve(process.cwd(), './plugins'),
|
||||
base: './server-plugin-web',
|
||||
templateFiles: [
|
||||
'./server-plugin-web/**/*',
|
||||
'./server-plugin-web/*/.ministarrc.js',
|
||||
],
|
||||
skipIfExists: true,
|
||||
globOptions: {},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
// 服务端插件的前端模板代码
|
||||
plop.setGenerator('server-plugin-full', {
|
||||
description: 'Full backend plugin template',
|
||||
prompts: [
|
||||
...namePrompts,
|
||||
...serverPrompts,
|
||||
],
|
||||
actions: [
|
||||
{
|
||||
type: 'addMany',
|
||||
destination: path.resolve(process.cwd(), './plugins'),
|
||||
base: './server-plugin-full',
|
||||
templateFiles: [
|
||||
'./server-plugin-full/**/*',
|
||||
'./server-plugin-full/*/.ministarrc.js',
|
||||
],
|
||||
skipIfExists: true,
|
||||
globOptions: {},
|
||||
},
|
||||
],
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user