zoukankan      html  css  js  c++  java
  • 创建前端简易脚手架

    1.初始化    yarn init

    2.在package.json 添加入口  "bin": "cli.js"

    {
      "name": "sample-scaffolding",
      "version": "1.0.0",
      "main": "index.js",
      "bin": "cli.js",
      "license": "MIT",
      "dependencies": {
        "ejs": "^3.1.6",
        "inquirer": "^8.0.0"
      }
    }

    3.根目录创建 cli.js

    #!/usr/bin/env node
    
    //node CLI应用如空文件必须要有这样一个文件头
    //如果是Linux 或者 macOs 系统下还需要修改此文件的读写权限为 755
    //具体就是通过 chmod 755 cli.js 实现修改
    
    // console.log("cli")
    
    
    //脚手架的工作过程:
    //1.  通过命令行交互询问用户问题   inquirer工具实现(发起命令行询问)
    //2. 根据用户的回答的结果生成文件
    
    const inquirer = require("inquirer")
    const fs = require('fs')
    const path = require('path')
    const ejs = require('ejs')
    
    inquirer.prompt([
        {
            type: "input",
            name: "name",
            message: "project name?"
        }
    ])
    .then(anwsers => {
        // console.log(anwsers)
        //根据提示生成文件
    
        //模板文件
        const tmplDir = path.join(__dirname, "templates")
        console.log('tmplDir----',tmplDir)
        //目标文件
        const destDir = process.cwd()
        console.log('destDir---', destDir)
        //
        fs.readdir(tmplDir, (err, files) => {
            if(err) throw err
            files.forEach(file => {
                // console.log(file)
                //通过模板引擎渲染  ejs 模板引擎
                ejs.renderFile(path.join(tmplDir, file), anwsers, (err, result) =>{
                    if(err) throw err
    
                    console.log(result)
                    //写入到目标文件
                    fs.writeFileSync(path.join(destDir, file), result)
                })
            })
        })
    
    })

    4.创建模板文件及对应文件夹 templates/index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title><%=name%></title>
    </head>
    <body>
        
    </body>
    </html>

    5.将项目资源放在内存当中 随时调用  根目录下执行  yarn link

    6.  执行名称生成文件在当前目录下   sample-scaffolding

    注:需要引入的的包     

    yarn add  inquirer   //发起命令行询问

    yarn add  ejs  //模板引擎 读写文件

  • 相关阅读:
    Android Studio复制项目作为一个新的工程
    7-(基础入门篇)关于STM32底层程序使用说明
    6-(基础入门篇)学会编译lua固件,固件的合成
    5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)
    STM32嵌入LUA开发(控制小灯闪耀)
    1-添加自己的Lua执行函数(ESP8266-SDK开发(lua版本))
    android 权限动态申请
    Android应用更新-自动检测版本及自动升级
    Android中AsyncTask的使用
    关于TCP和MQTT之间的转换
  • 原文地址:https://www.cnblogs.com/faint33/p/14736160.html
Copyright © 2011-2022 走看看