将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服务器(10):处理上传图片
Dec 18 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
nodejs中express入门和基础知识点学习
Sep 13 NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 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
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python标准库sched模块使用指南
2017/07/06 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
python交互界面的退出方法
2019/02/16 Python
python Pillow图像处理方法汇总
2019/10/16 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
教师应聘个人求职信
2013/12/10 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
安全责任书范本
2014/04/15 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
学习保证书怎么写
2015/02/26 职场文书
MySQL 计算连续登录天数
2022/05/11 MySQL
nginx七层负载均衡配置详解
2022/07/15 Servers