用nodejs写的一个简单项目打包工具
2013-05-11 00:00
567 查看
项目的模块加载和定义部分代码是这样的:
所用到的js打包工具就是扫描文件,然后匹配出来需要加载的模块,然后先加载模块代码。
主要的nodejs打包工具代码如下:
对于nodejs之前一直没认真学习,都是边查文档,编写的,所以代码很青涩~
XX.define('ns',['tool/cookie'],function(){ }); //或者 XX.define('ns.ns2','tool/cookie,tool/abc',function(){ }) //或者 XX.define('ns',function(){ })
所用到的js打包工具就是扫描文件,然后匹配出来需要加载的模块,然后先加载模块代码。
主要的nodejs打包工具代码如下:
//通用模块 var Util = require('util'), FS = require('fs'), getDeps = require('./getDeps'), Uglify = require('./uglify/uglify-js'), removeBOMChar = require('./removeBOM').removeBOMChar, PATH =require('path'); var packagedObj = {};//是否已经打包过 module.exports = function(filePath, rootPath, opts){ opts = opts || {}; var str = jscombo(filePath,rootPath); if(opts.unzip){ return str; }else{ return Uglify(str); } }; function jscombo(filePaths, rootPath){ if(Util.isArray(filePaths)){ return filePaths.map(function(filePath){ filePath = PATH.join(rootPath,filePath); //只打包一次 if(packagedObj[filePath]){ return ''; } packagedObj[filePath] = 1; //是否存在 if(FS.existsSync(filePath)){ //异步读取内容 var str = FS.readFileSync(filePath, 'utf-8'); //移出BOM头 str = removeBOMChar(str); var result = getDeps(str, rootPath); var content = result.content; content = '//'+filePath+'\n'+content; //递归打包 if(result.list){ return jscombo(result.list, rootPath) + content; } //返回内容 return content; }else{ //文件不存在错误信息 console.error('jsCombo Error: ' + filePath + ' does not exsist! the path is:'+rootPath); return ';alert("' + filePath + ' does not exsist!");'; } }).join(';\n'); }else{ return jscombo([filePaths],rootPath); } }
对于nodejs之前一直没认真学习,都是边查文档,编写的,所以代码很青涩~
相关文章推荐
- 用nodejs写的一个简单项目打包工具
- 一个简单的nodejs项目(cat-names)分析
- 【nodejs】新手如何一步步创建一个简单的express项目
- 使用nodejs、ejsExcel、express、vuejs编写一个excel转json的工具——第一步:创建vuejs项目并搭建开发环境
- nodejs 利用express框架 创建一个简单的web项目
- 分享一个项目中用到的简单的id生成工具
- XConfigGen——这是一个基于nodejs,用于生成不同环境项目配置文件的小工具
- nodejs自己在项目中使用的一个工具库utils.js文件
- 安装C语言集成开发工具Eclipse For C并创建一个简单的示例项目HelloWorld
- 一个简单好用的工具clipboard.js markdown转html
- simpletest:一个简单的PHP试工具
- Nodejs实现的一个简单udp广播服务器、客户端
- 创建一个简单的工具栏控件
- nodejs实现一个简单接口。开个头
- eclipse+Tomcat+ssm配置一个简单web项目
- 创建一个支持es6的nodejs项目
- IDEA-------(二)快速创建一个简单的Spring boot项目
- 使用eclipse工具搭建一个简单的Spring boot。
- 在eclipse中配置一个简单的spring入门项目
- 创建JSF项目及一个简单的JSF项目