将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 相关文章推荐
windows系统下简单nodejs安装及环境配置
Jan 08 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
深入浅析Nodejs的Http模块
Jun 20 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
nodejs async异步常用函数总结(推荐)
Nov 17 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 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 团购折扣计算公式
2011/11/24 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
小学敬老月活动方案
2014/02/11 职场文书
开学寄语大全
2014/04/08 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电