博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node前端自动化
阅读量:6533 次
发布时间:2019-06-24

本文共 2243 字,大约阅读时间需要 7 分钟。

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

我们平时写代码,喜欢建一个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' : '\n\t\n\t\ttitle\n\t\n\t\n\t\t

Hello

\n\t\n', } ]};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);    });})

 

转载于:https://www.cnblogs.com/wanliyuan/p/5532696.html

你可能感兴趣的文章
iOS图片加载速度极限优化—FastImageCache解析
查看>>
PHP中的一些新特性
查看>>
Jmockit使用
查看>>
I.MX6 Android mmm convenient to use
查看>>
[CareerCup] 13.9 Aligned Malloc and Free Function 写一对申请和释放内存函数
查看>>
Stack and Heap 堆和栈的区别
查看>>
什么是 A 轮融资?有 B轮 C轮么?
查看>>
55、Android网络图片 加载缓存处理库的使用
查看>>
svn文件提交时强制写注释
查看>>
【转载】千万级规模高性能、高并发的网络架构经验分享
查看>>
jsp字段判空
查看>>
OC基础--OC中的类方法和对象方法
查看>>
ubuntu samba服务器多用户配置【转】
查看>>
母线的种类与作用是什么(转)
查看>>
【Xamarin 挖墙脚系列:IOS 开发界面的3种方式】
查看>>
Atitit.工作流系统的本质是dsl 图形化的dsl 4gl
查看>>
I.MX6 Android USB Touch eGTouchA.ini文件存放
查看>>
4-5-创建索引表-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版
查看>>
java 操作 RabbitMQ 发送、接受消息
查看>>
go run main.go undefined? golang main包那点事
查看>>