将nodejs打包工具整合到鼠标右键的方法


Posted in NodeJs onMay 11, 2013

打包用到的批处理文件代码如下:

@echo off
title Builder - 正在合并 ...color 03
REM =====================================
REM     jsbuilder beta版
REM
REM =====================================
SETLOCAL ENABLEEXTENSIONS
echo.
REM 过滤文件后缀,只combo js文件
if "%~x1" NEQ ".js" (
    echo.
    echo **** 请选择JS文件
    echo.
    goto End
)
REM 检查NODE_PATH
if "%NODE_PATH%" == "" goto NoNodePath
if not exist "%NODE_PATH%\node.exe" goto NoNodePath
 
set RESULT_FILE=%~n1-combo%~x1
:ZIP_CHOICE
echo 选择是否【压缩】合并后的js文件?
set input=
set /p input= -^> 请选择(y/n): 
if /i "%input%"=="n" goto UNZIP
if /i "%input%"=="y" goto ZIP
REM 调用build合并文件
:UNZIP
"%NODE_PATH%\node.exe" "%~dp0build.js" --unzip "%~n1%~x1" > "%RESULT_FILE%"
echo.
echo **** ~O(∩_∩)O~ 【合并】成功 ****
echo.
goto End
 
REM 调用build合并并且压缩文件
:ZIP
"%NODE_PATH%\node.exe" "%~dp0build.js" "%~n1%~x1" > "%RESULT_FILE%"
echo.
echo **** ~O(∩_∩)O~ 【合并并压缩】成功 ****
echo.
goto End
:NoNodePath
echo.
echo **** 请先安装NodeJS并设置NODE_PATH环境变量 ****
echo.
:End
ENDLOCAL
pause

打包用的build.js代码如下:

//加载配置
require('./config.js');//用到的模块
var FS = require('fs'),
    PATH = require('path'),
    jscombo = require('./tool/jscombo'),
    Util = require('util');
 
//获取参数
var args = process.argv;
args = [].slice.call(args,2);
var opts = {};//配置
var curPath, rootPath = curPath = process.cwd();
//根据config.js的相对路径设置,变换rootPath
if(typeof relativePath!=='undefined'){
    rootPath = PATH.join(rootPath,relativePath);
}
var filename;//要处理的文件名字
//处理参数
out: while(args.length){
    var v = args.shift();
    switch(v){
        case '-uz':
        case '--unzip':
        //combo后压缩
            opts.unzip = true;
        break;
        default:
            filename = v;
            break out;
    }
}
// var filePath = PATH.join(rootPath,filename);
//将要压缩的js文件路径 转化为相对rootpath的路径
var rPath = PATH.relative(rootPath,PATH.join(curPath,filename));
var str = jscombo(rPath, rootPath, opts);
var fileout = process.stdout;
fileout.write(str);
NodeJs 相关文章推荐
nodejs之请求路由概述
Jul 05 NodeJs
Nodejs异步回调的优雅处理方法
Sep 25 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
nodejs制作小爬虫功能示例
Feb 24 NodeJs
用nodejs写的一个简单项目打包工具
May 11 #NodeJs
nodejs教程 安装express及配置app.js文件的详细步骤
May 11 #NodeJs
nodejs中exports与module.exports的区别详细介绍
Jan 14 #NodeJs
nodejs的require模块(文件模块/核心模块)及路径介绍
Jan 14 #NodeJs
windows系统下简单nodejs安装及环境配置
Jan 08 #NodeJs
NodeJs中的非阻塞方法介绍
Jun 05 #NodeJs
nodejs win7下安装方法
May 24 #NodeJs
You might like
需要发散思维学习PHP
2009/06/29 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
你应该知道的python列表去重方法
2017/01/17 Python
Python执行时间的计算方法小结
2017/03/17 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
python监控进程脚本
2018/04/12 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
大国崛起英国观后感
2015/06/02 职场文书
百年孤独读书笔记
2015/06/29 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
Java使用jmeter进行压力测试
2021/07/09 Java/Android
详解SQL报错盲注
2022/07/23 SQL Server