将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入门详解(多篇文章结合)
Mar 07 NodeJs
nodejs实现黑名单中间件设计
Jun 17 NodeJs
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
async/await与promise(nodejs中的异步操作问题)
Mar 03 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
配置nodejs环境的方法
May 13 NodeJs
理解nodejs的stream和pipe机制的原理和实现
Aug 12 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 NodeJs
Nodejs处理异常操作示例
Dec 25 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 IF ELSE简化/三元一次式的使用
2011/08/22 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
jquery 图片轮换效果
2010/07/29 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
浅析return false的正确使用
2013/11/04 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
vue监听scroll的坑的解决方法
2017/09/07 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
一些PHP的面试题
2015/05/06 面试题
百度JavaScript笔试题
2015/01/15 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
土木工程师岗位职责
2013/11/24 职场文书
英语生日邀请函
2014/01/23 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
党纪处分决定书
2015/06/24 职场文书
礼貌问候语大全
2015/11/10 职场文书
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js