将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 npm install全局安装和本地安装的区别
Jun 05 NodeJs
使用NodeJs 开发微信公众号(三)微信事件交互实例
Mar 02 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 NodeJs
Nodejs实现微信分账的示例代码
Jan 19 NodeJs
一文秒懂nodejs中的异步编程
Jan 28 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 clearstatcache()函数详解
2010/03/02 PHP
php在线代理转向代码
2012/05/05 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
php源码的使用方法讲解
2019/09/26 PHP
繁简字转换功能
2006/07/19 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
js判断密码强度的方法
2020/03/18 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
HTTP状态码详解
2021/03/18 杂记
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
国际象棋商店:The Chess Store
2018/07/09 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
终端业务员岗位职责
2013/11/27 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
公司离职证明范本
2014/10/17 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
表扬通报怎么写
2015/01/16 职场文书
获奖感言一句话
2015/07/31 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS