mport 做html公共模块导入操作
来源:互联网 发布:同花顺中天软件下载 编辑:程序博客网 时间:2024/05/23 02:06
/*
* name import 做html公共模块导入操作
* by haoxiaojun
* emal mr_hao918512@126.com
* on 2016.7.13
var
fs = require("fs"),
path = require("path");
/*页面路径:源路径,公共路径,目标路径*/
var
pagehtml = "src/page/",
commonP = "src/common/",
destP = "/dest/";
/*入口文件路径处理多入口,可应用于webpack多路径打包实现*/
var getEntry = function() {
var htmlPath = path.resolve(pagehtml);
var dirs = fs.readdirSync(htmlPath);
var matchs = [],
files = {};
dirs.forEach(function(item) {
matchs = item.match(/(.+)\.html$/);
var _path = '';
if (matchs) {
_path = path.resolve(pagehtml, item);
_path = _path.replace(/\\+/g, '/');
files[matchs[1]] = _path;
}
});
return files;
}
var fnImportExample = function( filenamePath,filename) {
// 读取HTML页面数据
// 使用API文档中的fs.readFile(filenamePath, [options], callback)
fs.readFile(filenamePath, {
// 需要指定编码方式,否则返回原生buffer
encoding: 'utf8'
}, function(err, data) {
// 下面要做的事情就是把
// <link rel="import" href="header.html">
// 这段HTML替换成href文件中的内容
// 可以求助万能的正则
var dataReplace = data.replace(/<link\srel="import"\shref="(.*)">/gi, function(matchs, m1) {
// m1就是匹配的路径地址了
m1 = commonP+m1
return fs.readFileSync(m1, {
encoding: 'utf8'
});
});
// 于是生成新的HTML文件
var newDir = __dirname.replace(/\\+/g, '/')+destP;
fs.writeFile(newDir+filename+".html", dataReplace, {
encoding: 'utf8'
}, function(err) {
if (err) throw err;
console.log(filenamePath + '生成成功!');
});
});
};
// 默认先执行一次
function start (){
var filenameObj = getEntry()
for (var i in filenameObj) {
fnImportExample(filenameObj[i],i);
}
}
start()
/*监控文件,变更后重新生成*/
fs.watch('./src/common/header.html' , function(event) {
if (event == 'change') {
console.log( 'header发生了改变,重新生成...');
start()
}
});
fs.watch('./src/common/footer.html' , function(event) {
if (event == 'change') {
console.log( 'footer发生了改变,重新生成...');
start()
}
});
// fs.watch('./src/common/' , function(event) {
// if (event == 'change') {
// console.log( '发生了改变,重新生成...');
// start()
// }
// });
* name import 做html公共模块导入操作
* by haoxiaojun
* emal mr_hao918512@126.com
* on 2016.7.13
*/
https://github.com/mrhaoxiaojun/import
var
fs = require("fs"),
path = require("path");
/*页面路径:源路径,公共路径,目标路径*/
var
pagehtml = "src/page/",
commonP = "src/common/",
destP = "/dest/";
/*入口文件路径处理多入口,可应用于webpack多路径打包实现*/
var getEntry = function() {
var htmlPath = path.resolve(pagehtml);
var dirs = fs.readdirSync(htmlPath);
var matchs = [],
files = {};
dirs.forEach(function(item) {
matchs = item.match(/(.+)\.html$/);
var _path = '';
if (matchs) {
_path = path.resolve(pagehtml, item);
_path = _path.replace(/\\+/g, '/');
files[matchs[1]] = _path;
}
});
return files;
}
var fnImportExample = function( filenamePath,filename) {
// 读取HTML页面数据
// 使用API文档中的fs.readFile(filenamePath, [options], callback)
fs.readFile(filenamePath, {
// 需要指定编码方式,否则返回原生buffer
encoding: 'utf8'
}, function(err, data) {
// 下面要做的事情就是把
// <link rel="import" href="header.html">
// 这段HTML替换成href文件中的内容
// 可以求助万能的正则
var dataReplace = data.replace(/<link\srel="import"\shref="(.*)">/gi, function(matchs, m1) {
// m1就是匹配的路径地址了
m1 = commonP+m1
return fs.readFileSync(m1, {
encoding: 'utf8'
});
});
// 于是生成新的HTML文件
var newDir = __dirname.replace(/\\+/g, '/')+destP;
fs.writeFile(newDir+filename+".html", dataReplace, {
encoding: 'utf8'
}, function(err) {
if (err) throw err;
console.log(filenamePath + '生成成功!');
});
});
};
// 默认先执行一次
function start (){
var filenameObj = getEntry()
for (var i in filenameObj) {
fnImportExample(filenameObj[i],i);
}
}
start()
/*监控文件,变更后重新生成*/
fs.watch('./src/common/header.html' , function(event) {
if (event == 'change') {
console.log( 'header发生了改变,重新生成...');
start()
}
});
fs.watch('./src/common/footer.html' , function(event) {
if (event == 'change') {
console.log( 'footer发生了改变,重新生成...');
start()
}
});
// fs.watch('./src/common/' , function(event) {
// if (event == 'change') {
// console.log( '发生了改变,重新生成...');
// start()
// }
// });
0 0
- mport 做html公共模块导入操作
- GNS3-1.4导入虚拟机做实验操作
- mport java.util.Scanner;
- Node.Js cheerio模块--操作/解析Html
- tp5怎样在视图中引用公共模块foot.html和header.html
- 导入模块
- 导入模块
- 导入公共库
- python switch +=*/计算器 和 导入自定义模块 简单操作
- Python使用xlrd模块操作Excel数据导入的方法
- Python使用xlrd模块操作Excel数据导入的方法
- HOOK API公共模块
- 模块—公共物品
- 第三章 公共模块
- 留言板之公共模块
- 开发页面公共模块
- idea安装公共模块
- 使用POI操作EXECL做数据的导入与导出
- 我的天 安装secutecrt 出现一系列问题
- 设计模式三-行为模式
- 构建微服务:Spring boot 入门篇
- JS利用CANVAS 画环形进度条
- 关于FPGA设计仿真和硬件实测不一致问题的讨论
- mport 做html公共模块导入操作
- Linux下格式化U盘及分区
- IOS判断是否是URL
- sql语句中GROUP BY 和 HAVING的使用
- 单向透视玻璃
- 经典问题之多重背包的总结与提升
- U3D之aabb.IsValid()、IsFinite(outDistanceForSort)、IsFinite(outDistanceAlongView),u3disfinite
- JS利用windows.open()打开子窗口
- 零基础学习PHP笔记【三】数据库操作--邮件列表