node前端自动化

Posted 实之华之兹乃兼求,逆风兮,顺风兮,无阻我飞扬.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node前端自动化相关的知识,希望对你有一定的参考价值。

一、前端自动化-项目构建

我们平时写代码,喜欢建一个project,然后里面是css、js、images文件,以及index.html,而node可以自动化构建好项目,如下:

 

/**
 * Created by 毅 on 2015/9/20.
 */

var projectData = {

    name : project,
    fileData : [
        {
            name : css,
            type : dir
        },
        {
            name : js,
            type : dir
        },
        {
            name : images,
            type : dir
        },
        {
            name : index.html,
            type : file,
            content : <html>\n\t<head>\n\t\t<title>title</title>\n\t</head>\n\t<body>\n\t\t<h1>Hello</h1>\n\t</body>\n</html>,
        }
    ]

};

var fs = require(fs);

if ( projectData.name ) {
    fs.mkdirSync(projectData.name);

    var fileData = projectData.fileData;

    if ( fileData && fileData.forEach ) {

        fileData.forEach(function(f) {

            f.path = projectData.name + / + f.name;

            f.content = f.content || ‘‘;

            switch (f.type) {

                case dir:
                    fs.mkdirSync(f.path);
                    break;

                case file:
                    fs.writeFileSync(f.path, f.content);
                    break;

                default :
                    break;

            }

        });

    }

}

 

 二、前端自动化--监听文件的变化

在上面的自动生成的project文件夹里面再建一个source文件夹。下面的代码就是监听source文件夹的任何变化,不管是新建文件还是往新建文件中加入内容。它都会合并到js/index.js中去。

var fs = require(fs);

var filedir = ./project/source;

fs.watch(filedir, function(ev, file) {

    //console.log(ev + ‘ / ‘ + file); // 这里不需要判断file是否有内容

    //只要有一个文件发生了变化,我们就需要对这个文件夹下的所有文件进行读取,然后合并

    fs.readdir(filedir, function(err, dataList) {

        var arr = [];

        console.log(dataList);

        dataList.forEach(function(f) {

            if (f) {
                var info = fs.statSync(filedir + / + f);

                //console.log(info);

                if (info.mode == 33206) {
                    arr.push(filedir + / + f);
                }
            }

        });

        //console.log(arr);

        //读取数组中的文件内容,并合并

        var content = ‘‘;
        arr.forEach(function(f) {
            var c = fs.readFileSync( f );
            //console.log(c);

            content += c.toString() + \n;

        });

        console.log(content);

        fs.writeFile(./project/js/index.js, content);

    });

})

 

以上是关于node前端自动化的主要内容,如果未能解决你的问题,请参考以下文章

node前端自动化

关于js----------------分享前端开发常用代码片段

VS Code配置snippets代码片段快速生成html模板,提高前端编写效率

前端开发日常 - 12Node.js扫描文件目录

前端自动化之路之gulp,node.js

Node.js JavaScript 片段中的跳过代码