将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 03 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
Jun 08 NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
详解NodeJs开发微信公众号
May 25 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
Mar 02 NodeJs
详解NodeJS模块化
Jun 15 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判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
深入解析Python中的urllib2模块
2015/11/13 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
详解Python设计模式之策略模式
2020/06/15 Python
浅析Python的命名空间与作用域
2020/11/25 Python
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
函数指针的定义是什么
2016/08/14 面试题
某公司C#程序员面试题笔试题
2014/05/26 面试题
PyQt 如何创建自定义QWidget
2021/03/24 Python
汽车队司机先进事迹材料
2014/02/01 职场文书