将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 相关文章推荐
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
nodejs开发微博实例
Mar 25 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
详解nodejs 文本操作模块-fs模块(四)
Dec 22 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 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 If Else(elsefi) 语句
2013/04/07 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
学习ExtJS Column布局
2009/10/08 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
Python函数嵌套实例
2014/09/23 Python
python如何查看微信消息撤回
2018/11/27 Python
flask-restful使用总结
2018/12/04 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
硕士研究生自我鉴定
2013/11/08 职场文书
优秀学生事迹材料
2014/02/08 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
焦裕禄观后感
2015/06/03 职场文书
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA