将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 整合kindEditor实现图片上传
Feb 03 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
初探nodeJS
Jan 24 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
nodejs提示:cross-device link not permitted, rename错误的解决方法
Jun 10 NodeJs
Nodejs封装类似express框架的路由实例详解
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
php array_search() 函数使用
2010/04/13 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Python列表list数组array用法实例解析
2014/10/28 Python
使用python存储网页上的图片实例
2018/05/22 Python
Python爬取成语接龙类网站
2018/10/19 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
python xpath获取页面注释的方法
2019/01/14 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
python tkinter实现连连看游戏
2020/11/16 Python
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
社团招新策划书
2014/02/04 职场文书
求职自荐信怎么写
2014/03/06 职场文书
团代会主持词
2014/04/02 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
招标授权委托书样本
2014/09/23 职场文书
年底个人总结范文
2015/03/10 职场文书
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs