nodejs作为一个通过纯js代码实现前端-后台一体化操作的平台,大大增加了其开发应用的前景,但是由于nodejs更多的偏向于在DOS窗口中操作及控制项目的开发,这对于很多习惯使用eclipse的开发人员来说,简直是要命的事情,那么,nodejs考虑到这个问题,于是,他们开发了一个适用于eclipse的nodejs插件,有了这个插件,你就可以轻松在eclipse中开发nodejs项目。
但是现实是这样的么?。。。。这是一个神坑。。。。。
在前面的文章里,讲述了如何安装nodejs -eclipse 插件的方法,现在就来说说我遇到的第一个神坑。
安装后对应版本的nodejs插件后,首先就是一个问题,eclipse并不能很好的解析nodejs的语法,也就是说,即使是正确的Nodejs语法格式,它也可能会报错,例如下面的语法:
(function(root, factory) { if (typeof define === 'function' && define.amd) { define(['jquery', 'microevent', 'jQuery.extendext'], factory); } else { factory(root.jQuery, root.MicroEvent); } }(this, function($, MicroEvent) { "use strict"; var types = [ 'string', 'integer', 'double', 'date', 'time', 'datetime', 'boolean' ] 。。。。。。。
它会在代码中的this处报做,说
The left-hand side of an assignment must be a variable
但是其实是没错的。
不得不说,这是最大的神坑,只要启动eclipse,它就会一直builder workplace ,或者只要你修改了某个文件,它就会一直在builder .... ,然后 builder ....builer ,好了,现在你就会发现,即使你的电脑内存为8G或者16G,你的eclipse会好卡啊,卡着卡着,eclipse给你弹出一个对话框,说“不好意思,支持我builder workplace”的java 的垃圾处理器(GC)内存溢出了,导致我也除了问题,你需要关闭eclipse.....)
好了,至此,你的eclipse完全坏掉,即使你关闭重启,也还是这个问题。。。。。
当然,解决办法由多种,但是都不是根本的解决问题,
办法一、 关闭eclipse的builder workplace功能,这个很简单,不详说如何关闭。但是不建议这么做,虽然这样就不会再让你的eclipse卡了,但是会让你的eclipse缺了一条腿哦。
办法二、 去eclipse配置文件里修改内存,增大它的运行内存,当然,前提是要求你的电脑内存足够eclipse内存的急速扩张的折磨,哎,也不想说如何修改配置文件了。。。。
算了,还是说下吧,去eclipse安装文件的根目录下,有一个eclipse.init文件,用记事本打开此文件,原始的内容如下:
-startup plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316 -product org.eclipse.epp.package.jee.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 256M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -Xms40m -Xmx512m
修改最下面的那两条数据,大小随便你,只要你的电脑内存足够经得起折腾,我修改为下面的
-Xms521m -Xmx1024m
保存后,重启eclipse,好了,这次eclipse不再报错了,但是偶尔会卡,这是由于根本的问题没有解决
啥,想使用eclipse解决根本的问题?好呀,那你等着nodejs官方优化插件吧,据说他们更新的死慢死慢的。。。。
好,eclipse暂时不能解决你的问题,那就换一个开发的平台吧,webStorm在开发nodejs应用时是一个不错的选择,大家可以参照如何下载安装webStorm吧。