博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入浅出Node.js(二):Node.js&NPM的安装与配置 -------转
阅读量:5297 次
发布时间:2019-06-14

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

作者 发布于 2011年12月2日

专栏的第二篇文章《Node&NPM的安装与配置》介绍Node的安装部署、环境配置以及NPM的安装。

Node.js安装与配置

Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本 情况了,对此,我们将在0.6.x的版本上介绍Node.js的安装和配置。(本文一律以0.6.1为例,0.6的其余版本,只需替换版本号即可。从可以查看到最新的二进制版本和源代码)。

Windows平台下的Node.js安装

在过去,Node.js一直不支持在Windows平台下原生编译,需要借助Cygwin或MinGW来模拟POSIX系统,才能编译安装。幸运的是2011年6月微软开始与Joyent合作移植Node.js到Windows平台上( ),这次合作的成果最终呈现在0.6.x的稳定版的发布上。这次的版本发布使得Node.js在Windows平台上的性能大幅度提高,使用方面也更容易 和轻巧,完全摆脱掉Cygwin或MinGW等实验室式的环境,并且在某些细节方面,表现出比Linux下更高的性能,细节参见。

在Windows(Windows7)平台下,我将介绍二种安装Node.js的方法,即普通和文艺安装方法。

普通的安装方法

普通安装方法其实就是最简单的方法了,对于大多Windows用户而言,都是不太喜欢折腾的人,你可以从这里( )直接下载到Node.js编译好的msi文件。然后双击即可在程序的引导下完成安装。

在命令行中直接运行:

node -v

命令行将打印出:

v0.6.1

该引导步骤会将node.exe文件安装到C:\Program Files (x86)\nodejs\目录下,并将该目录添加进PATH环境变量。

文艺的安装方法

Windows平台下的文艺安装方法主要提供给那些热爱折腾,喜欢编译的同学们。在编译源码之前需要注意的是你的Windows系统是否包含编译源码的工具。Node.js的源码主要由C++代码和JavaScript代码构成,但是却用gyp工具( )来做源码的项目管理,该工具采用Python语言写成的。在Windows平台上,Node.js采用gyp来生成Visual Studio Solution文件,最终通过VC++的编译器将其编译为二进制文件。所以,你需要满足以下两个条件:

  1. Python(Node.js建议使用2.6或更高版本,不推荐3.0),可以从这里()获取。
  2. VC++ 编译器,包含在Visual Studio 2010中(VC++ 2010 Express亦可),VS2010可以从这里()找到。

下载Node.js的0.6.1版本的源码压缩包( )并解压之。

通过命令行进入解压的源码目录,执行vcbuild.bat release命令,然后经历了漫长的等待后,编译完成后,在Release目录下可以找到编译好的node.exe文件。通过命令行执行node -v。

命令行返回结果为:

v0.6.1

事实上,如果你的编译环境中存在WiX工具集( ),执行vcbuild.bat msi release命令,你将会在Relase目录下找到node.msi。

是的,我们回到了一开始的普通安装方法。所谓文艺就是多走一些路,多看一些风景罢了。

Unix/Linux平台下的Node.js安装

由于Node.js尚处于v0.x.x的版本的快速发展中,Unix/Linux平台的发行版都不会预置Node的二进制文件,通过源码进行编译安装是目前最好的选择。而且用Unix/Linux系统的同学们多数都是文艺程序员,本节只介绍如何通过源码进行编译和安装。

安装条件

如同在Windows平台下一样,Node.js依然是采用gyp工具管理生成项目的,不同的是通过make工具进行最终的编译。所以Unix/Linux平台下你需要以下几个必备条件,才能确保编译完成:

  1. Python。用于gyp,可以通过在shell下执行python命令,查看是否已安装python,并确认版本是否符合需求(2.6或更高版本,但不推荐3.0)。
  2. 源代码编译器,通常 Unix/Linux平台都自带了C++的编译器(GCC/G++)。如果没有,请通过当前发行版的软件包安装工具安装make,g++这些编译工具。
    1. Debian/Ubuntu下的工具是apt-get
    2. RedHat/centOS下通过yum命令
    3. Mac OS X下你可能需要安装xcode来获得编译器
  3. 其次,如果你计划在Node.js中启用网络加密,OpenSSL的加密库也是必须的。该加密库是libssl-dev,可以通过apt-get install libssl-dev等命令安装。

检查环境并安装

完成以上预备条件后,我们获取源码并进行环境检查吧:

wget  tar zxvf node-v0.6.1.tar.gz cd node-v0.6.1 ./configure 上面几行命令是通过wget命令下载最新版本的代码,并解压之。./configure命令将会检查环境是否符合Nodejs的编译需要。 Checking for program g++ or c++ : /usr/bin/g++ Checking for program cpp : /usr/bin/cpp Checking for program ar : /usr/bin/ar Checking for program ranlib : /usr/bin/ranlib Checking for g++ : ok Checking for program gcc or cc : /usr/bin/gcc Checking for program ar : /usr/bin/ar Checking for program ranlib : /usr/bin/ranlib Checking for gcc : ok Checking for library dl : yes Checking for openssl : yes Checking for library util : yes Checking for library rt : yes Checking for fdatasync(2) with c++ : yes 'configure' finished successfully (7.350s)

如果检查没有通过,请确认上面提到的三个条件是否满足。如果configure命令执行成功,就可以进行编译了:

make make install

Nodejs通过make工具进行编译和安装(如果make install不成功,请使用sudo以确保拥有权限)。完成以上两步后,检查一下是否安装成功:

node -v

检查是否返回:

v0.6.1

至此,Nodejs已经编译并安装完成。如需卸载,可以执行make uninstall进行卸载。

小结

以上介绍了*nix和Windows平台下Nodejs的安装,之后可以如同Nodejs官方网站上介绍的那样,编写example.js文件。

var http = require('http'); http.createServer(function (req, res) {     res.writeHead(200, {'Content-Type': 'text/plain'});     res.end('Hello World\n'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');

在命令行中执行它:

node example.js

你就可以通过浏览器访问得到Hello World的响应。

安装NPM

NPM的全称是Node Package Manager,如果你熟悉ruby的gem,Python的PyPL、setuptools,PHP的pear,那么你就知道NPM的作用是什么了。没 错,它就是Nodejs的包管理器。Nodejs自身提供了基本的模块。但是在这些基本模块上开发实际应用需要较多的工作。所幸的是笔者执笔此文的时候 NPM上已经有了5112个Nodejs库或框架,这些库从各个方面可以帮助Nodejs的开发者完成较为复杂的应用。这些库的数量和活跃也从侧面反映出 Nodejs社区的发展是十分神速和活跃的。下面我将介绍安装NPM和通过NPM安装Nodejs的第三方库,以及在大陆的网络环境下,如何更好的利用 NPM。

Unix/Linux下安装NPM

就像NPM的官网()上介绍的那样,安装NPM仅仅是一行命令的事情:

curl http://npmjs.org/install.sh | sh

这里详解一下这句命令的意思,curl http://npmjs.org/install.sh是通过curl命令获取这个安装shell脚本,按后通过管道符| 将获取的脚本交由sh命令来执行。这里如果没有权限会安装不成功,需要加上sudo来确保权限:

curl http://npmjs.org/install.sh | sudo sh

安装成功后执行npm命令,会得到一下的提示:

Usage: npm  where  is one of: adduser, apihelp, author, bin, bugs, c, cache, completion, config, deprecate, docs, edit, explore, faq, find, get, help, help-search, home, i, info, init, install, la, link, list, ll, ln, ls, outdated, owner, pack, prefix, prune, publish, r, rb, rebuild, remove, restart, rm, root, run-script, s, se, search, set, show, star, start, stop, submodule, tag, test, un, uninstall, unlink, unpublish, unstar, up, update, version, view, whoami

我们以underscore为例,来展示下通过npm安装第三方包的过程。

npm install underscore

返回:

underscore@1.2.2 ./node_modules/underscore

由于一些特殊的网络环境,直接通过npm install命令安装第三方库的时候,经常会出现卡死的状态。幸运的是国内CNode社区的同学利用空余时间搭建了一个镜像的NPM资源库,服务器架设在日本,可以绕过某些不必要的网络问题。你可以通过以下这条命令来安装第三方库:

npm --registry "" install underscore

如果你想将它设为默认的资源库,运行下面这条命令即可:

npm config set registry ""

设置之后每次安装时就可以不用带上—registry参数。值得一提的是还有另一个镜像可用,该镜像地址是,如需使用,替换上面两行命令的地址即可。

Windows下安装NPM

由于Nodejs最初在Linux开发下的历史原因,导致NPM一开始也不支持Windows环境,但是随着Nodejs成功移植到到Windows平台,NPM在Windows下的需求亦是日渐增加。下面开始Windows下的NPM之旅吧。

安装GIT工具

由于github网站不支持直接下载打包了所有submodule的源码包,所以需要通过git工具来签出所有的源码。从,可以下载到msysgit这个Windows平台下的git客户端工具(最新版本文件为Git-1.7.7.1-preview20111027.exe)。在下载之后双击安装。

下载NPM源码

打开命令行工具(CMD),执行以下命令,可以通过msysgit签出NPM的所有源码和依赖代码并安装npm。

git clone --recursive git://github.com/isaacs/npm.git cd npm node cli.js install npm -gf

在执行这段代码之前,请确保node.exe是跟通过node.msi的方式安装的,或者在PATH环境变量中。这段命令也会将npm加入到 PATH环境变量中去,之后可以随处执行npm命令。如果安装中遇到权限方面的错误,请确保cmd命令行工具是通过管理员身份运行的。安装成功后,执行以 下命令:

npm install underscore

返回:

underscore@1.2.2 ./node_modules/underscore

如此,Windows平台下的NPM安装完毕。如果遭遇网络问题无法安装,请参照Linux下的NPM命令,添加镜像地址。

参考文献

关于作者

田永强,新浪微博@朴灵,前端工程师,现职于SAP,从事Mobile Web App方面的研发工作,对NodeJS持有高度的热情,寄望打通前端JavaScript与NodeJS的隔阂,将NodeJS引荐给更多的前端工程师。 兴趣:读万卷书,行万里路。个人Github地址:


感谢对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家加入到中与我们的编辑和其他读者朋友交流。

9 条回复

发表人 Ma Devis 发表于
02/12/2011 06:01
发表人 echo ECHO 发表于
07/12/2011 08:28
发表人 echo ECHO 发表于
07/12/2011 08:31
发表人 杨 津萍 发表于
07/12/2011 10:23
发表人 杨 津萍 发表于
07/12/2011 10:40
发表人 杨 津萍 发表于
07/12/2011 11:01
发表人 song wu 发表于
08/12/2011 06:58
发表人 bird max 发表于
02/02/2012 11:17
发表人 Huang ZhenYong 发表于
19/04/2012 10:42
    1. 忘了苦逼装法吧,用用nvm

      02/12/2011 06:01 发表人 Ma Devis

      忘了苦逼装法吧,用用nvm

    2. npm的包依赖也是件痛苦的事情

      07/12/2011 08:28 发表人 echo ECHO

      跟linux下的rpm一样,依赖关系搞的头大!

    3. 再也不用装虚拟机来安装组件了!

      07/12/2011 08:31 发表人 echo ECHO

      之前怎么没发现这个呢,还折腾一个虚拟机。

    4. win7 下载了node-v0.6.1.msi, 不能安装

      07/12/2011 10:23 发表人 杨 津萍

      提示:无法通过windows Installer 服务安装此安装程序包。您必须安装带有更新版本Windows Installer服务的 Windows Service Pack。

    5. Re: win7 下载了node-v0.6.1.msi, 不能安装

      07/12/2011 10:40 发表人 杨 津萍

      提示: filenodeexe 已损坏。

    6. Re: win7 下载了node-v0.6.1.msi, 不能安装

      07/12/2011 11:01 发表人 杨 津萍

      通过IE 9自带方式下载时出现文件损坏,用迅雷等工具下载正常安装。

    7. 怎么run helloworld

      08/12/2011 06:58 发表人 song wu

      examp.js放哪里呢?如果windows默认路径安装

    8. windows下安装完msi,npm就包含在其中了.不需额外安装.

      02/02/2012 11:17 发表人 bird max

      Windows Computers

      Get the MSI. npm is in it.

    9. 最新node.msi集成了npm

      19/04/2012 10:42 发表人 Huang ZhenYong

      最新node.msi集成了npm

转载于:https://www.cnblogs.com/anjey/archive/2012/05/23/2514252.html

你可能感兴趣的文章
(springboot)freemarker(二)
查看>>
linux下golang gRPC配置详解
查看>>
mongodb 简单使用说明
查看>>
eclipse的调试方法的简单介绍
查看>>
OneAPM 云监控部署与试用体验
查看>>
加固linux
查看>>
wget 升级
查看>>
为什么需要大数据安全分析?
查看>>
day13.字典复习
查看>>
IPSP问题
查看>>
(转)Java中的String为什么是不可变的? -- String源码分析
查看>>
HNU 10362 A+B for Input-Output Practice (II)
查看>>
iOS——UIButton响应传参数
查看>>
【转帖】关于'eh vector constructor/destructor iterator'的讨论及类的内存分布模型
查看>>
十. 图形界面(GUI)设计9.列表和组合框
查看>>
10.17动手动脑
查看>>
操作系统实验一:并发程序设计
查看>>
互联网协议入门(一)
查看>>
Air Max 1 Men's Shoe Black/Team Red [NIKE-NO.12030]
查看>>
16_Python变量作用域_Python编程之路
查看>>