生成一个模板页面

目录

前言

一、建立模板页面文件夹

二、开始实操

1.引入库

2.写下要生成的模板

3.创建页面

4 生成指令

 5 运行

总结



前言

前言

如果你做的页面有大量重复的或者很单一的增删改查,可以尝试着生成一个模板页面


一、建立模板页面文件夹

1.先建立一个你要生成的页面的文件夹这里叫buildPage/index.js,在里面在建立一个模板文件夹template/index.js

二、开始实操

1.引入库

npm i path chalk fs

2.写下要生成的模板

module.exports = {
可以在这里写一个Vue的模板和一个api的模板,这里只写Vue的
vueTemp: (name)=> {
如果需要对参数进行处理或者一些额外的可以写在这里
let className = name.split("").join('-')
return (`<div>我是要生成的模板页面,如果你需要参数请填写参数${className}</div>`)
}
}

3.创建页面

const chalk = require('chalk') 
// npm包chalk, 修改控制台中字符串的样式(字体样式加粗等/字体颜色/背景颜色),2/使用加粗+红色字+背景白色,如console.log(chalk`{red.bold.bgWhite Hello World}`)
const fs = require('fs') 

// require('fs') fs读文件中路径的处理,常用读fs.readFile写fs.writeFile
const resolve = file => path.resolve(process.cwd(), file) 
// path.resolve() 该方法将一些的 路径/路径段 解析为绝对路径。, 第一个路径源选填项,process.cwd()是指当前node命令执行时所在的文件夹目录,比如在D:/aaa/bb目录下执行 yarn build那么cwd就是D:/aaa/bb
// __dirname是指被执行js文件所在的文件夹目录 比如D:/aa/script

const path = require('path') // 路径

const successLog = message => console.log(chalk.red(`${message}`))
const errorLog = message => console.log(chalk.green(`${message}`))

// 导入模板
const {
    vueTemp
} = require('./template')
// 生成文件
const createFile = (pagepath, data) => {
    if (fs.existsSync(pagepath)) { // fs.existsSync以同步的方法检测目录是否存在。如果目录存在 返回 true ,如果目录不存在 返回false
        errorLog(`文件已存在`)
        return
    }
    return new Promise((resolve, reject) => {
        // 异步写入文件
        fs.writeFile(pagepath, data, 'utf8', err => {
            if (err) {
                errorLog(err.message)
                reject(err)
            } else {
                resolve(true)
            }
        })
    })
}

// 递归创建目录 同步方法
 // 利用fs.mkdirSync同步创建目录,这里目录是要一层一层创建的
 // mkdirSync 方法参数为一个目录的路径,没有返回值,在创建目录的过程中,必须保证传入的路径前面的文件目录都存在,否则会抛出异常。

function mkdirsSync(dirname) {
    if (fs.existsSync(dirname)) {
        return true;
    } else {
        if (mkdirsSync(path.dirname(dirname))) {
            fs.mkdirSync(dirname);
            return true;
        }
    }
}
let fileName = '/模块名/文件名/'
let page = '页面名'
let pagePath = `src/pages/${fileName}`
async function buildPages(pageName) {
    // 生成Vue文件
    let pagePath = resolve(`${pagePath}${pageName}.vue`) 
    await createFile(pagePath, vueTemplate({ // 该模板需要的参数
        pageName, // 页面名称
    }))
    successLog('生成成功')
}
// 递归创建文件
mkdirsSync(pagePath)
mkdirsSync(apiPath)
buildPages(page)

4 生成指令

package,json文件里 scripts里面写上指令就可以生成页面了

"page": "node ./buildPage/index.js"

 5 运行

npm run page


总结

比较单一的项目就可以直接copy一个页面去模板在进行修改成一个合适的模板,这样开发速度会快很多

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的uniapp登陆页面模板,你可以根据自己的需求进行修改: ```html <template> <div class="login"> <div class="login-form"> <form> <div class="form-group"> <label for="username">用户名</label> <input type="text" v-model="username" id="username" placeholder="请输入用户名"> </div> <div class="form-group"> <label for="password">密码</label> <input type="password" v-model="password" id="password" placeholder="请输入密码"> </div> <div class="form-group form-actions"> <button type="submit" class="btn btn-primary" @click.prevent="login">登陆</button> </div> </form> </div> </div> </template> <script> export default { data() { return { username: '', password: '' } }, methods: { login() { // 登陆逻辑 } } } </script> <style lang="scss" scoped> .login { display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #f5f5f5; .login-form { width: 400px; background-color: #fff; padding: 20px; border-radius: 5px; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); form { .form-group { margin-bottom: 20px; label { display: block; margin-bottom: 5px; font-weight: bold; } input { width: 100%; padding: 10px; border-radius: 5px; border: 1px solid #d9d9d9; box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.1); transition: border-color 0.3s ease; &:focus { border-color: #1890ff; } } .form-actions { text-align: center; button { padding: 10px 20px; border-radius: 5px; border: none; color: #fff; background-color: #1890ff; cursor: pointer; } } } } } } </style> ``` 这个模板包含了一个简单的登陆表单,包括用户名和密码的输入框以及一个登陆按钮。你可以根据自己的需求添加更多的表单项或者修改样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值