zoukankan      html  css  js  c++  java
  • 使用node初始化项目

    初始化项目

    在建项目的时候经常会建很多文件夹和文件,今天使用node初始化项目自动生成这些内容。

    执行步骤

    • 执行命令 node init 初始化项目生成package.json
    • 设置配置文件
    var fs=require('fs');
    var path=require('path');
    
    module.exports.structure={
      rootName:'item',
      fileData:[
        {
          name:'images',
          type:'dir'
        },
        {
          name:'css',
          type:'dir',
          fileChild:
            {
              name:'index.css',
              type:'file',
              content:'@charset utf-8;'
            }
        },
        {
          name:'js',
          type:'dir',
          fileChild:
            {
              name:'index.js',
              type:'file',
              content:'/* Created by jines */'
            }
        },
      
        {
          name:'index.html',
          type:'file',
          //读取文件内容
          content:fs.readFileSync(path.join(__dirname,'index.html'))
        },
        {
          name:'404.html',
          type:'file',
          //读取文件内容
          content:fs.readFileSync(path.join(__dirname,'404.html'))
        }
      ]
    }
    
    • 初始化项目
    /*
    初始化项目
     */
    const fs=require('fs');
    const path=require('path');
    const structure=require('../config.js').structure;
    let rootName=path.join('./',structure.rootName);
    
    module.exports=function(){
      if(rootName){
        //创建根目录
        fs.mkdir(rootName,function(){
          structure.fileData.forEach(function (item) {
            if(item.type=='dir'){
              //创建文件夹
              fs.mkdir(rootName+'/'+item.name,function(){
              for(var k in item){
                //判断子文件中是还有文件,如果有则创建
                if(typeof item[k]=='object' && item[k].type=='file'){
                  fs.writeFileSync(rootName+'/'+item.name+'/'+item[k].name,item[k].content,'utf-8')
                }
              }
             })
              
            }else if(item.type=='file'){
               //创建文件
              fs.writeFileSync(rootName+'/'+item.name,item.content,'utf-8')
            }
          })
        })
      }
    }
    
    • 入口文件 index.js
    'user strict'
    //process.argv包含命令行参数的数组。
    //第一个元素是node的路径,
    //第二个元素是js文件的当前路径。
    //第三个元素是命令行的参数。
    const args=process.argv.slice(2);
    const param=args[0];
    
    const init=require('./command/init.js');
    
    switch(param){
      case 'init':init();
          break;
      case '-v' :console.log('版本信息');
          break;
      default:   console.log('帮助信息');
          break;
    }
    
    
    • 执行命令 node index.js init生成文件

    文件目录如图所示

    • 将该项目拷贝到node的安装目录下C:dev vmv6.5.0 ode_modules

    如图所示

    • 在此C:dev vmv6.5.0 路径下新建文件item.cd并写入如下代码:
           @IF EXIST "%~dp0
    ode.exe" (
          "%~dp0
    ode.exe"  "%~dp0
    ode_modulesitemindex.js" %*
        ) ELSE (
          @SETLOCAL
          @SET PATHEXT=%PATHEXT:;.JS;=;%
          node  "%~dp0
    ode_modulesitemindex.js" %*
        )
    

    如图所示

    • 最后就可以在全局执行item init命令初始化项目
  • 相关阅读:
    AIO系列文档(2)----TIO使用
    AIO系列文档(1)----图解ByteBuffer
    Dubbo+zookeeper构建高可用分布式集群(二)-集群部署
    Dubbo+zookeeper构建高可用分布式集群(一)-单机部署
    利用redis + lua解决抢红包高并发的问题
    使用SIP Servlet为Java EE添加语音功能
    Java互联网架构-直播互动平台高并发分布式架构应用设计
    搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用
    SIP协议搭建电信级VOIP/IM运营平台--架构篇(sip集群)
    阿里分布式事务解决方案-GTS
  • 原文地址:https://www.cnblogs.com/lijinblogs/p/5914940.html
Copyright © 2011-2022 走看看