当前位置: 首页 > 编程笔记 >

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

沈实
2023-03-14
本文向大家介绍如何通过shell脚本自动生成vue文件详解,包括了如何通过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>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。

 类似资料:
  • 问题内容: 我正在尝试在Shell脚本中生成动态var名称,以在循环中如下处理一组具有不同名称的文件: 我期望输出: 但我得到了: 是否可以即时生成var名称? 问题答案: 您需要利用变量间接: 在Bash手册页的 “参数扩展”下: “如果参数的第一个字符是感叹号(!),则会引入变量间接级别。Bash使用从参数其余部分形成的变量的值作为变量的名称;然后对该变量进行扩展,然后在替换的其余部分中使用v

  • 本文向大家介绍linux下mysql如何自动备份shell脚本,包括了linux下mysql如何自动备份shell脚本的使用技巧和注意事项,需要的朋友参考一下 Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令。 保存后将以上脚本加入cront

  • 问题内容: 使用PHP,我试图提供由于授权问题而不在网络可访问目录中的大文件(最大可能为200MB)。当前,我使用一个调用以及一些标头来提供文件,但是似乎PHP在发送之前先将其加载到内存中。我打算在共享托管服务器上进行部署,这将不允许我使用太多内存或添加自己的Apache模块(例如X- Sendfile)。 出于安全原因,我不能让我的文件位于可通过网络访问的目录中。有人知道我可以在共享主机服务器上

  • 本文向大家介绍如何通过PHP脚本下载大文件?,包括了如何通过PHP脚本下载大文件?的使用技巧和注意事项,需要的朋友参考一下 要通过PHP脚本下载大文件,代码如下- 示例 输出结果 这将产生以下输出- 函数“ readfile_chunked”(用户定义)具有两个参数:文件名和返回字节数的默认值“ true”,表示已成功下载大文件。声明了变量“ chunksize”,其中每个块需要读取的字节数。将'

  • 问题内容: 是否有任何聪明的方法可以通过ssh在远程主机上运行本地Bash功能? 例如: 是的,我知道这行不通,但是有办法实现吗? 问题答案: 您可以使用该命令通过来使功能在远程计算机上可用。有多个选项,具体取决于您要如何运行远程脚本。 要在远程主机上使用该功能: 更好的是,为什么还要麻烦管道: 或者,您可以使用HEREDOC: 如果要发送脚本中定义的所有函数,而不仅仅是发送,请像这样使用: 说明

  • 问题内容: 我尝试执行以下操作(我的jar和python文件都在同一目录中): 和 无论是工作过。因此,我当时以为应该改用Jython,但我认为必须有一种更简单的方法来通过python执行jar文件。 你知道我可能做错了什么吗?或者,是否还有其他网站可以进一步研究我的问题? 问题答案: 我将以这种方式使用子流程: 但是,如果你有一个正确配置的,你应该能够直接运行jar,因为你写的。 那么,这正是您