mirror of
https://github.com/element-plus/element-plus.git
synced 2024-11-27 02:01:15 +08:00
feat/template-generator
- Add `gc.sh` as template generator - Add `gc` as npm script to generate boilerplate
This commit is contained in:
parent
398fdb3ed0
commit
dd01db13f4
@ -5,7 +5,8 @@
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"cz": "npx git-cz"
|
||||
"cz": "npx git-cz",
|
||||
"gc": "sh ./scripts/gc.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
"vue": "^3.0.0-rc.1",
|
||||
|
65
scripts/gc.sh
Executable file
65
scripts/gc.sh
Executable file
@ -0,0 +1,65 @@
|
||||
#! /bin/bash
|
||||
|
||||
export NAME=$1
|
||||
|
||||
export FILE_PATH=$(cd "$(dirname "${BASH_SOURCE[0]}")/../packages" && pwd)
|
||||
|
||||
re="[[:space:]]+"
|
||||
|
||||
if [ "$#" -ne 1 ] || [[ $NAME =~ $re ]] || [ "$NAME" == "" ]; then
|
||||
echo "Usage: yarn gc \${name} with no space"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DIRNAME="$FILE_PATH/$NAME"
|
||||
|
||||
if [ -d "$DIRNAME" ]; then
|
||||
echo "$NAME component already exists, please change it"
|
||||
exit 1
|
||||
fi
|
||||
NORMALIZED_NAME=""
|
||||
for i in $(echo $NAME | sed 's/[_|-]\([a-z]\)/\ \1/;s/^\([a-z]\)/\ \1/'); do
|
||||
C=$(echo "${i:0:1}" | tr "[:lower:]" "[:upper:]")
|
||||
NORMALIZED_NAME="$NORMALIZED_NAME${C}${i:1}"
|
||||
done
|
||||
NAME=$NORMALIZED_NAME
|
||||
|
||||
TEMPLATE_INDEX_VUE="<template>\n
|
||||
<div>\n
|
||||
</div>\n
|
||||
</template>\n
|
||||
<script lang='ts'>\n
|
||||
export default {\n
|
||||
NAME: 'El${NAME}',\n
|
||||
props: {\n
|
||||
},\n
|
||||
setup(props,ctx) { }\n
|
||||
};\n
|
||||
</script>\n
|
||||
<style>\n
|
||||
</style>\n
|
||||
"
|
||||
|
||||
TEMPLATE_INDEX_TS="\n
|
||||
import { App } from 'vue'\n
|
||||
import ${NAME} from './src/index.vue'\n
|
||||
export default (app: App) => {\n
|
||||
app.component(${NAME}.name, ${NAME})\n
|
||||
}
|
||||
"
|
||||
TEMPLATE_PKG_JSON="\n
|
||||
{\n
|
||||
\"name\": \"eleplus-${NAME}\",\n
|
||||
\"description\": \"\",\n
|
||||
\"version\": \"0.1.0\",\n
|
||||
\"main\": \"./index.ts\",\n
|
||||
\"license\": \"MIT\",\n
|
||||
\"dependencies\": {}\n
|
||||
}\n
|
||||
"
|
||||
|
||||
mkdir -p "$DIRNAME"
|
||||
mkdir -p "$DIRNAME/src"
|
||||
echo $TEMPLATE_INDEX_VUE >>"$DIRNAME/src/index.vue"
|
||||
echo $TEMPLATE_INDEX_TS >>"$DIRNAME/index.ts"
|
||||
echo $TEMPLATE_PKG_JSON >>"$DIRNAME/package.json"
|
Loading…
Reference in New Issue
Block a user