将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中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
Nodejs 获取时间加手机标识的32位标识实现代码
Mar 07 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 NodeJs
CentOS 安装NodeJS V8.0.0的方法
Jun 15 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
nodejs和react实现即时通讯简易聊天室功能
Aug 21 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 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 替换模板变量实现步骤
2009/08/24 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
深入探究node之Transform
2017/07/20 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
浅谈python数据类型及类型转换
2017/12/18 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
美国宠物商店:Wag.com
2016/10/25 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
班组长安全生产职责
2013/12/16 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
管理信息系学生的自我评价
2014/01/11 职场文书
优秀护士演讲稿
2014/04/30 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏