如何通過shell腳本自動生成vue文件詳解
前言
最近在寫nuxt項目時候每次新建頁面都要去新建然后引入各種需要的依賴很是麻煩,所以想寫一個腳本自動生成文件 省去手動新建
現(xiàn)寫下實現(xiàn)方法 給大家參考
Mac下可直接運(yùn)行
Windows下需要安裝Cygwin類軟件且配置環(huán)境變量后運(yùn)行
使用方法
1、需要修改package.json 的scrpts 加一條create 或者自定義名字 主要是為了我們在terminal中輸入指令后運(yùn)行對應(yīng)的腳本
package.json
2、在項目根目錄新建一個template文件夾放自己的模板文件
文件內(nèi)容根據(jù)項目需要自行修改
模板
3、之后在build文件夾下新建 create.sh 腳本文件 (代碼在下面)
4、之后在terminal中輸入 npm run create
指令 這個指令支持 后面攜帶一個不必傳參數(shù)作為文件名 (npm run create xxxx
) 或者直接輸入npm run create
效果
文件名不能重復(fù) 如果重復(fù)不會覆蓋原有文件 只會輸出錯誤
名稱重復(fù)
生成后的文件以及文件內(nèi)容
生成后的文件
create.sh 腳本文件
修改COMPONENT_PATH 和 PAGE_PATH 路徑改變?yōu)樽约赫鎸嵞0迓窂?br />
運(yùn)行該腳本后
組件會在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 "未發(fā)現(xiàn)名稱, 請輸入名稱?" 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>
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
詳解vue+axios給開發(fā)環(huán)境和生產(chǎn)環(huán)境配置不同的接口地址
這篇文章主要介紹了詳解vue+axios給開發(fā)環(huán)境和生產(chǎn)環(huán)境配置不同的接口地址,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08解決vue項目運(yùn)行npm run serve報錯的問題
這篇文章主要介紹了解決vue項目運(yùn)行npm run serve報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10vue中使用echarts繪制雙Y軸圖表時刻度沒有對齊的兩種解決方法(最新方案)
這篇文章主要介紹了vue中使用echarts繪制雙Y軸圖表時,刻度沒有對齊的兩種解決方法,主要原因是因為刻度在顯示時,分割段數(shù)不一樣,導(dǎo)致左右的刻度線不一致,不能重合在一起,下面給大家分享解決方法,需要的朋友可以參考下2024-03-03vue3使用element-plus搭建后臺管理系統(tǒng)之菜單管理功能
這篇文章主要介紹了vue3使用element-plus搭建后臺管理系統(tǒng)之菜單管理,使用element-plus el-tree組件快速開發(fā)樹形菜單結(jié)構(gòu),el-tree組件中filter-node-method事件便可以實現(xiàn)樹形菜單篩選過濾功能,需要的朋友可以參考下2022-04-04