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命令初始化项目
  • 相关阅读:
    Delphi 与 DirectX 之 DelphiX(60): TDIB.DoTrace();
    Delphi 与 DirectX 之 DelphiX(62): TDIB.DoSolorize();
    Delphi 与 DirectX 之 DelphiX(55): TDIB.DoMosaic();
    利用ImportFromRSS可以方便地收藏其他网站的文章
    粘贴代码更简单的方法(保持VS.NET中的格式)
    请正确填写你的邮件地址
    介绍.Text 中的TrackBack
    在VS.NET中给xsl文件增加智能感知功能
    The Difference Between RegisterStartupScript and RegisterClientScriptBlock
    [转帖]Why you can't catch some exceptions
  • 原文地址:https://www.cnblogs.com/lijinblogs/p/5914940.html
Copyright © 2011-2022 走看看