博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用node-webkit实现打包工具的小结
阅读量:6943 次
发布时间:2019-06-27

本文共 1567 字,大约阅读时间需要 5 分钟。

之前一直使用的hta在开发工具,最近转到node-webkit上了,对比一下二者的优劣势。hta单个文件,体积较小,但有兼容性的问题(兼容ie6、7、8就行了,也还好),node-webkit使用webkit内核,可以直接使用html5、css3的相关特性,比如圆角、渐变等,比较方便,界面炫一些,但在windows下最大的问题就是体积较大。

 

还有就是node-webkit在windows下进行资源的copy时,容易报error但它是一个空的Error对象,里面并没有errCode和它的信号相关信息,hta没有这个问题很稳定。不过读写文件和网络请求处理上面来讲,还是node.js方便,一行代码就能解决战斗,所以尽管体积偏大,我还是倾向于node-webkit进行开发。

 

下面来总结一下遇到的坑:

1、编码问题

一个是使用child_process调用dos相关的命令时,得到的输出有中文全部就乱码了,例如调用devenv.com编译项目,除英文字符外其它几乎都是乱码,很不好判断到底编译项目成功还是失败了

 

二是,使用Notepad2默认创建的txt文件,它的编码居然是utf8+,带BOM的,太坑了,获取文件内容时它的头部居然带一个“?”,结果程序一跑,alert也没发现啥问题,ctrl + c、ctrl + v出来的时候才发现里面带一个?

 

2、exec方法的回调函数中,需要对error进行进一步的判断,仅判断error是否为null容易误判,因为实际我比较复制后的文件跟源文件夹大小和文件数量是一致的。

process.exec(command_str, function(error, stdout, stderr) {
console.log("copy PALACE_CARD_M_RES error : ", error); if (error && error.code) {
//code、signal showMessage("文件复制失败," + JSON.stringify(error)); return ; } showMessage("PALACE_CARD_M_RES文件夹复制成功"); //todo.. });
 
不然,仅用if(error) {}进行判定, 很容易程序中断,后续函数无法继续运行。我这个是在copy大约35M左右的文件夹内容时遇到的,可能是时间过长导致的,待验证…
 
 
3、使用request模块时,注意需要保存cookie;
比如我先登录OA,然后调用OA的接口,如果不保存cookie那么调用就会失败。而hat就是一个浏览器进程,所以它不存在这个问题。使用下面的代码解决它:
request = request.defaults({jar: true});

 

4、svn相关注意事项

svn需要先update,然后再add,最后才是commit,这三步都是程序在进行处理,但顺序不能乱,不然就game over了。其中如果你所使用的svn服务器是需要添加注释的,在使用程序自动处理时别忘记了-m参数,不然也是提交失败的~ ~,并且你还拿不到出错信息(就一个errCode和信号id还有是否被kill掉的相关信息)

 

5、node-webkit安装xml2json模块还安装不上,没办法改用xml2js了。这个没找到同步方法,先监听它的end方法然后再做处理,比较蛋疼

 

6、使用上传组件input file时,需要注意它的属性,根据自己的需要使用

     

其中ebkitdirectory跟nwdirectory效果是一样的,其它几项相信看到描述也大概知道什么意见了

 

暂时记录这么多,下次再用它开发工具应该不会再遇到这么多坑了…

转载地址:http://tianl.baihongyu.com/

你可能感兴趣的文章
Firebug中的console tab使用总结
查看>>
java 内部类深度剖析
查看>>
爱♥曲线,单身程序猿福音
查看>>
SEO互帮团真诚奉献:一百多个站长论坛!
查看>>
Zend Studio 9.01汉化破解(图)
查看>>
Sharepoint学习笔记—Ribbon系列-- 1. Ribbon的架构
查看>>
队列的优先级
查看>>
Android之短信发送器
查看>>
交换机与路由器的区别
查看>>
SQL函数---SQL COUNT()
查看>>
对${ZSH_VERSION+set}的验证
查看>>
TAM安装26-
查看>>
For my one year Anniversary to India
查看>>
c#调用存储过程两种方法
查看>>
谈面试下
查看>>
Struts2和Spring3 MVC的区别说明
查看>>
Discuz!NT - 帖子列表IE8/9下js效果bug修复
查看>>
10个非常有用的jQuery360度旋转影像插件推荐
查看>>
WAL-E Disaster Recovery
查看>>
掌握这些电脑知识,你会玩得很无耻
查看>>