如何通过shell脚本自动生成vue文件详解
作者:Jarvan丶 发布时间:2024-05-22 10:28:35
标签:shell,脚本,vue
前言
最近在写nuxt项目时候每次新建页面都要去新建然后引入各种需要的依赖很是麻烦,所以想写一个脚本自动生成文件 省去手动新建
现写下实现方法 给大家参考
Mac下可直接运行
Windows下需要安装Cygwin类软件且配置环境变量后运行
使用方法
1、需要修改package.json 的scrpts 加一条create 或者自定义名字 主要是为了我们在terminal中输入指令后运行对应的脚本
package.json
2、在项目根目录新建一个template文件夹放自己的模板文件
文件内容根据项目需要自行修改
模板
3、之后在build文件夹下新建 create.sh 脚本文件 (代码在下面)
4、之后在terminal中输入 npm run create
指令 这个指令支持 后面携带一个不必传参数作为文件名 (npm run create xxxx
) 或者直接输入npm run create
效果
文件名不能重复 如果重复不会覆盖原有文件 只会输出错误
生成后的文件以及文件内容
create.sh 脚本文件
修改COMPONENT_PATH 和 PAGE_PATH 路径改变为自己真实模板路径
运行该脚本后
组件会在components文件夹下新建组件
页面会在pages 文件夹下新建页面
#!/usr/bin/env sh
create () {
if [[ $REPLY =~ ^[Yy]$ ]]
then
PATH_DIR="./components/$NAME"
else
PATH_DIR="./pages/$NAME"
fi
if [ ! -d "$PATH_DIR" ]
then
mkdir $PATH_DIR
if [[ $PATH_DIR =~ "components" ]]
then
CLASS_NAME="component-$NAME"
cp $COMPONENT_PATH "$PATH_DIR/index.vue"
else
CLASS_NAME="page-$NAME"
cp $PAGE_PATH "$PATH_DIR/index.vue"
fi
sed -i "" "s/class-name/$CLASS_NAME/" "$PATH_DIR/index.vue"
echo -e "\n生成完成 \n... \n"
else
echo -e "\n已存在文件夹 \n$PATH_DIR"
fi
}
set -e
echo "开始生成代码..."
COMPONENT_PATH="./template/component.vue"
PAGE_PATH="./template/page.vue"
if [[ -n $1 ]]
then
NAME=$1
read -p "请问代码 $NAME - 是否是组件 ? (y/n)" -n 1 -r
else
echo "未发现名称, 请输入名称?"
read NAME
read -p "请问代码 $NAME - 是否是组件 ? (y/n)" -n 1 -r
fi
create
模板组件参考
<template>
<div class="class-">
component
</div>
</template>
<script>
export default {
props: {},
data() {
return {}
},
methods: {
init() {}
}
}
</script>
<style lang="scss" scoped>
@import '@/common/scss/var.scss';
@import '@/common/scss/mixin.scss';
.class- {
}
</style>
模板页面参考
<template>
<div class="class-">
page
</div>
</template>
<script>
import { baseMixin } from '@/common/mixins/index'
export default {
mixins: [baseMixin],
data() {
return {}
},
async asyncData({ $axios }) {},
head() {
return {
title: ''
}
},
mounted() {
this.init()
},
methods: {
init() {}
}
}
</script>
<style lang="scss" scoped>
@import '@/common/scss/var.scss';
@import '@/common/scss/mixin.scss';
.class- {
}
</style>
来源:https://www.jianshu.com/p/5e989880682b


猜你喜欢
- 译序:本文译自Smashingmagazine,但是原文讲述的内容有些浅,也不是很完整,前端观察在翻译的前提下,增加了更多的更系统的内容。如
- 天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花
- 本文实例讲述了js传值后台中文出现乱码的解决方法。分享给大家供大家参考,具体如下:在“test.jsp”页面中,需要通过js将值传递到后台,
- 有时候为了自动化测试网页,我们往往希望能够使用一些脚本语言控制浏览器. 通过脚本模拟一些浏览器动作,然后测试得到的结果.这里, 我们讲解一下
- 首先要注意 vue3中 v-model 默认绑定的变量名变了,从原理的 value 改成了 modelValue,如果要改变变量的值,要执行
- 在Python的标准库中,functools库中有很多对方法有操作的封装功能,partial Objects就是其中之一,他可以实现对方法参
- 用法:matplotlib.pyplot.stem(*args, linefmt=None, markerfmt=None, basefmt
- 前言优化随机森林算法,正确率提高1%~5%(已经有90%+的正确率,再调高会导致过拟合)论文当然是参考的,毕竟出现早的算法都被人研究烂了,什
- 在python中我们可以使用openCV给图片添加水印,这里注意openCV无法添加汉字水印,添加汉字水印上可使用PIL库给图片添加水印一:
- 服务端:#!/usr/bin/envimport SocketServerclass myMonitorHandler(SocketServ
- 内容摘要:一堆数据摆面前,数据背后有什么样的事情在发生,这些数据里面暗藏着什么样的用户需求,什么样的商业机会?看懂这些,将为未来产品设计的方
- 本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下原理均值滤波其实就是对目标像素及周边像素取平均
- 本文实例讲述了python实现指定字符串补全空格的方法。分享给大家供大家参考。具体分析如下:如果希望字符串的长度固定,给定的字符串又不够长度
- 前言提示:这里可以添加本文要记录的大概内容:将一个EXCEL等份拆成多个EXCEL将多个小EXCEL合并成一个大EXCEL并标记来源提示:以
- 1.普通的输出:print(str)#str是任意一个字符串,数字···2.格式化输出: print('1,2,%s,%d'
- CSS样式和JavaScript脚本是应该放在外部文件中呢?还是把它们放在页面本身之内呢?如何处理是关于一些性能规则的思维,就这些问题,我们
- 本文实例讲解了javascript实现无缝上下滚动的代码,分享给大家供大家参考,具体内容如下js实现上下无缝滚动的原理是这样的:1、首先给容
- 最近,正好发生了一件大事,就是 GitLab 的运维同学不小心删除了生产的数据,虽然 GitLab 已经骇人听闻的准备了五种备份机制,但是,
- 一、KNN算法简介邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K
- 一、现象最近在数据库中删除了一张表,重新执行python manage.py migrate时出错,提示不存在这张表。通过查找相关的资料,最