日期:2014-05-16  浏览次数:20324 次

JavaScript语法检查与构建工具——JSLint和NodeJS的使用

JavaScript语法检查与构建工具——JSLint和NodeJS的使用

本文使用于高级JavaScript开发者,初学者慎入!

本文适用于意图创造类似jQuery库的开发者,掌握了本文所述的方法之后,可以快速地象开发Java或C++一样开发JavaScript。你需要具备一些最基本的知识和工作习惯来实践本文所述的方法:

  • 对命令行不恐惧;
  • 对Makefile稍微有点了解;
  • 喜欢控制细节而不是交给一个黑盒工具;
  • 最后也是最重要的一点就是你是个Linux粉丝,希望在Windows和Linux上都能无缝地进行工作切换。

好了,废话到此为止,下面展开我的工作。

考虑到大多人仍然在Windows上开发软件,因此本文以Cygwin为工作环境来说明问题。本文的方法在Windows7/Linux(Ubuntu 12.10)上测试通过。Cygwin是一个运行在Windows上的虚拟Unix操作系统。在Linux上开发相对简单,只要安装最新的nodejs即可。而在Windows上需要安装Cygwin。

第1步:下载安装cygwin。

第2步:在cygwin上需要安装的软件:git,curl,nodejs,npm。

第3步:下载JSLint。

第4步:创建自己的JS工程包目录,用任一你喜欢的软件编写JS文件。写Makefile。

第5步:运行cygwin,运行make命令,构建JS。

 

下面我详细说明每一步的具体过程。

第1步:下载安装cygwin。

尽管你可以进入cygwin网站直接下载一个,但我是到nvidia网站下载了一个囊括了eclipse/cygwin/Java/C/C++/Android/Ant…的组合开发工具:

Tegra Android Developer Pack

进入http://developer.nvidia.com/tegra-resources网址,下载:Tegra Android Developer Pack 1.0r5

http://developer.nvidia.com/sites/default/files/akamai/tools/files/Tegra/tegra-devpack-1.0-windows-2012-02-21-11617556.exe

下载后双击tegra-devpack-1.0-windows-2012-02-21-11617556.exe,安装至:C:\NVPACK。并自动更新需要的安装包。默认选择全部安装。

尽管我们只需要NVPACK里面的cygwin这个一小部分的东西,但是由于我还需要整个开发组合中的其他组件,因此这是我采用的方法。如果只想安装cygwin,则可以参考有关文档自行解决之。

C:\NVPACK\cygwin\

第2步:在cygwin上需要安装的软件:git,curl,nodejs,npm。

进入C:\NVPACK\cygwin,双击setup.exe,选择internet安装项,搜索相关软件,勾选即可安装相关的包。如果提示需要升级C:\NVPACK\cygwin\setup.exe,用http://www.cygwin.com/setup.exe的最新版文件覆盖替换之。




1)安装git

搜索git,安装相关包。如下图。



2)下载NodeJS

运行cygwin命令行Cygwin.bat:

$ wgethttp://nodejs.org/dist/node-v0.4.12.tar.gz

 在Cygwin下面一定是node-v0.4.12.tar.gz,因为最新的版本0.8.18已经不支持Cygwin了。在Linux下可以安装最新的0.8.18。


3)编译安装NodeJS(使用make命令构建js和css要用到nodejs)

要正常编译nodejs,必须先在Cywgin的ASH模式下执行rebaseall。步骤如下:

  • 退出cygwin,启动Windowscmd命令行
  • 进入cygwin安装目录下的bin子目录
  • 运行ash进入shell模式
  • ./rebaseall -v

没有错误,完成,exit退出ash,关闭命令行窗口。下面开始编译NodeJS,启动cygwin,进入相关目录:

  $tar xzf node-v0.4.12.tar.gz

  $cd node-v0.4.12

  $./configure --prefix=/usr/local

  $make

  $make install


4)配置nodejs DNS

cygwin内部是使用windows的DNS查询,而nodejs另外使用的是c-ares库来解析DNS,