美文网首页
Nodejs-项目结构初始化案例

Nodejs-项目结构初始化案例

作者: 悟空你又瘦了 | 来源:发表于2017-07-22 17:48 被阅读0次
    • 项目初始化
     初始化包 -- `npm init -y`
      新建入口文件 -- index.js
      新建核心代码模块 -- init.js
      新建配置清单 -- config.json
      新建index.html 与 404.html
    
    • 核心模块
        引入模块 -- path、fs
        书写核心业务逻辑
    
    • config.json
    {
        "rootName" : "mydemo",
        "data" : [
            {
                "name" : "img",
                "type" : "dir"
            },
            {
                "name" : "js",
                "type" : "dir"
            },
            {
                "name" : "css",
                "type" : "dir"
            },
            {
                "name" : "index.html",
                "type" : "file"
            },
            {
                "name" : "404.html",
                "type" : "file"
            }
        ]
    }
    
    • init.js
    // 实现初始化工作
    const cfg = require('./config.json');
    const path = require('path');
    const fs = require('fs')
    // 获取根目录
    let rootName = cfg.rootName;
    // 初始化函数
    let init = () => {
        fs.mkdir(path.join('./', rootName), (err) => {
            if (err) {
                console.log("创建根路径失败");
                return;
            }
            cfg.data.forEach(obj => {
                if (obj.type == 'dir') {
                    fs.mkdir(path.join('./', rootName, obj.name), (err) => {
                        if (err) {
                            consle.log("创建子目录失败");
                            return;
                        }
                        console.log(`${obj.name}目录创建是成功`)
                    })
                }else if (obj.type == 'file') {
                    fs.readFile(path.join(__dirname,obj.name),(err, data) => {
                        if (err) {
                            console.log("读取文件失败");
                            return;
                        }
                        fs.writeFile(path.join('./',rootName, obj.name),data, (err) => {
                            if (err) {
                                console.log("创建文件失败");
                                return;
                            }
                            console.log(`${obj.name} 文件创建成功`);
                        })
                    })
                }
            })
        })
    }
    // init();
    exports.init = init;
    
    • index.js
    // 入口文件
    const obj = require('./init.js');
    let param = process.argv[2];
    switch(param){
        case '-i':
            obj.init();
            break;
        case '-h':
            console.log('帮助信息');
            break;
        case '-v':
            console.log('1.0.0');
            break;
    }
    
    • 怎么使用
    1.在命令行里面输入node .
    2.如果不输入node . ,可以吗,是可以的
      先查看使用node版本,比如是6.9.1
      打开目录C:\dev\nvm\v6.9.1\node_modules 
      将写的文件夹放到里面
      在外面随便复制一个cmd格式的修改 ,命名为init.cmd
    @IF EXIST "%~dp0\node.exe" (
      "%~dp0\node.exe"  "%~dp0\node_modules\wjj\index.js" %*
    ) ELSE (
      @SETLOCAL
      @SET PATHEXT=%PATHEXT:;.JS;=;%
      node  "%~dp0\node_modules\wjj\index.js" %*
    )
    然后在外面命令行输入init就可以了
    而且还支持init -v init -h
    而且是当前目录创建哦,因为改成了./
    

    相关文章

      网友评论

          本文标题:Nodejs-项目结构初始化案例

          本文链接:https://www.haomeiwen.com/subject/hetukxtx.html