将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学习笔记之NET模块
Jan 13 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
Nodejs中解决cluster模块的多进程如何共享数据问题
Nov 10 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
nodejs aes 加解密实例
Oct 10 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
nodejs中使用worker_threads来创建新的线程的方法
Jan 22 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
php-msf源码详解
2017/12/25 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
python中rc1什么意思
2020/06/19 Python
如何将json数据转换为python数据
2020/09/04 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
罗技美国官网:Logitech美国
2020/01/22 全球购物
主持人演讲稿范文
2013/12/28 职场文书
运动会解说词50字
2014/01/18 职场文书
财政局个人总结
2015/03/04 职场文书
MySql数据库 查询时间序列间隔
2022/05/11 MySQL