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  //模板引擎 读写文件

  • 相关阅读:
    如何禁止掉SharePoint页面个性化?(续)
    Visual Studio Extensions for SharePoint v1.1
    07年末围炉盛宴 信息工作者应用与管理系列Webcast
    即将从TechReady5归来
    SharePoint 2007 Web Content Management 性能优化系列 1 做好拓扑架构规划
    SharePoint Server 2007 页面模型
    SharePoint 2007 Web Content Management 性能优化系列 前言
    谁说人们不喜欢SharePoint?:)
    Property Bags Object Model中的小“陷阱”
    SharePoint 2007 External Binary Storage Component
  • 原文地址:https://www.cnblogs.com/faint33/p/14736160.html
Copyright © 2011-2022 走看看