如何通过shell脚本自动生成vue文件详解


Posted in Javascript onSeptember 10, 2019

前言

最近在写nuxt项目时候每次新建页面都要去新建然后引入各种需要的依赖很是麻烦,所以想写一个脚本自动生成文件 省去手动新建

现写下实现方法 给大家参考

Mac下可直接运行
Windows下需要安装Cygwin类软件且配置环境变量后运行

使用方法

1、需要修改package.json 的scrpts 加一条create 或者自定义名字 主要是为了我们在terminal中输入指令后运行对应的脚本

如何通过shell脚本自动生成vue文件详解

package.json

2、在项目根目录新建一个template文件夹放自己的模板文件

文件内容根据项目需要自行修改

如何通过shell脚本自动生成vue文件详解

模板

3、之后在build文件夹下新建 create.sh 脚本文件 (代码在下面)

4、之后在terminal中输入 npm run create 指令 这个指令支持 后面携带一个不必传参数作为文件名 (npm run create xxxx) 或者直接输入npm run create

如何通过shell脚本自动生成vue文件详解

效果

文件名不能重复 如果重复不会覆盖原有文件 只会输出错误

如何通过shell脚本自动生成vue文件详解
名称重复

生成后的文件以及文件内容

如何通过shell脚本自动生成vue文件详解
生成后的文件

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>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js 巧妙去除数组中的重复项
Jan 25 Javascript
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
JS实现控制表格行文本对齐的方法
Mar 30 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
JavaScript mixin实现多继承的方法详解
Mar 30 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
JS实现的加减乘除四则运算计算器示例
Aug 09 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
利用Node.js批量抓取高清妹子图片实例教程
Aug 02 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
js获取 gif 的帧数的代码实例
Sep 10 #Javascript
微信小程序实现pdf、word等格式文件上传的方法
Sep 10 #Javascript
js中console在一行内打印字符串和对象的方法
Sep 10 #Javascript
layui表格内放置图片,并点击放大的实例
Sep 10 #Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 #Javascript
es6中reduce的基本使用方法
Sep 10 #Javascript
layui导出所有数据的例子
Sep 10 #Javascript
You might like
php获得当前的脚本网址
2007/12/10 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Windows下搭建python开发环境详细步骤
2020/07/20 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
使用python实现生成用户信息
2017/03/20 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
房地产出纳岗位职责
2013/12/01 职场文书
求职自荐信
2013/12/14 职场文书
高中校园广播稿
2014/01/11 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
有关环保的标语
2014/06/13 职场文书
教师节活动总结
2014/08/29 职场文书
单位工作证明范本
2015/06/15 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
聊聊Python String型列表求最值的问题
2022/01/18 Python
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android