手机版

Node.js安装教程和NPM包管理器使用细�

时间:2021-10-07 来源:互联网 编辑:宝哥软件园 浏览:

在2009年的JSCOnf大会上,一位名叫Ryan Dahl的年轻程序员向人们展示了他正在做的一个项目,一个基于Google V8引擎的JavaScript运行平台,提供了一套具有事件循环和低IO的应用编程接口(API)。与其他服务器端平台不同,JavaScript本质上是事件驱动的IO,这个项目大大降低了编写事件驱动应用程序的复杂性,因此它以令人难以置信的速度快速增长并流行起来,并被应用到实际项目中。(杰克:这段的翻译不可靠。原文:这个项目不像其他服务器端的JavaScript平台,所有的输入/输出原语都是事件驱动的,没有办法绕过它。).

这个项目叫做Node.js,开发人员习惯于调用Node。Node提供了一组纯事件驱动的非阻塞工具包,用于构建高度并发的应用程序。

注意:节点允许您简单地构建快速且可扩展的网络服务。

自从被Ryan Dahl引入后,Node引起了业界的广泛关注。他们已经开始使用Node部署快速且可扩展的网络服务。节点太吸引人了。

一方面是因为JavaScript是这个星球上使用最广泛的编程语言,大部分Web程序员都在浏览器端使用过JavaScript,服务器端是它的自然延伸。

另一方面,由于Node娇小可爱,它的核心功能集非常小,现有的API也非常精细,为开发人员最小化了复杂度。当你想要构建一些比较复杂的应用程序时,你只需要选择和安装一些你喜欢的第三方模块。

Node如此吸引人的另一个原因是它很容易上手,您可以在几分钟内下载并安装它,然后让它启动并运行。

通常只需按照官网(http://nodejs.org)上的步骤安装Node即可,Node支持Windows、Linux、Macintosh和Solaris。

在Windows上安装节点。

0.6.0版的节点支持Windows。要在Windows上安装Node,只需下载node-v*。msi从http ://nodejs.org/#下载,然后双击运行它。然后,您可能会遇到类似于图1-1的安全对话框。

图1-1。

点击“运行”按钮,下载后会出现另一个安全对话框(图1-2),提醒是否确认操作。

图1-2。

如果您同意,将出现节点安装向导(图1-3)。单击“下一步”开始安装节点,很快就会完成!见图1-4。

图1-3。

图1-4。

安装在Mac OS X下.

如果您使用Mac OS X,您可以使用安装向导来安装节点。首先,下载节点-v*。http://nodejs.org/#download,的pkg,下载后双击运行。您将看到安装向导的第一个对话框,如图1-5所示。

图1-5。

单击“继续”进行安装,然后向导会要求您输入系统用户的密码。确认后,安装将开始。过了一会儿,节点又安装好了!见图1-6。

图1-6。

用源代码安装。

如果使用UNIX系统,可以通过编译源代码来安装。首先,您需要选择要安装的节点版本,然后下载相应的源代码,构建它,安装并运行节点。

注意:Node依赖于几个第三方代码库,但幸运的是,其中大多数已经包含在Node发行包中。如果从源代码开始,您需要以下两件事:

1.python(2.4以上版本)——与Node一起发布的构建工具需要python环境来运行2.libssl-dev ——如果您计划使用SSL/TLS加密,则需要安装这个。libssl是openssl工具使用的类库。在Linux和UNIX系统下,通常可以用系统的包管理器来安装。libssl是在Mac OS X下预安装的,所以如果你使用Mac OS X,你通常不需要安装libssl。

选择节点版本。

官方网站nodejs.org上通常有两个不同版本的Node可供下载:稳定版和最新版。

对于Node,版本号的最小位代表这个版本的稳定性,稳定版本使用偶数(如0.2、0.4、0.6),不稳定版本使用奇数(0.1、0.3、0.5、0.7)。

不稳定版本不仅在功能上不稳定,在后续版本中API也可能发生变化,稳定版本中发布的API不会被修改。对于每个稳定的分支,新的补丁不仅包括错误修复,还包括不稳定版本中的API修改。

除非你想在最新的不稳定版本中测试新功能,否则你应该选择最新的稳定版本。不稳定版本就像是为Node核心团队测试新功能的战场。

虽然越来越多的项目和公司在产品中成功使用了Node(显示在官网首页),但你可能要学会忍受API从不稳定版本到稳定版本的变化。当然,这是学习一项新技术的代价。

下载节点源代码。

现在你知道下载哪个版本了,那就去官网http://nodejs.org找对应的tar包,然后复制下载链接。如果您使用UNIX系统,您的系统可能已经安装了wget,这意味着您可以使用shell命令下载它:

复制代码如下:美元WGET http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz.

如果你没有安装wget,你可能需要使用curl:复制代码如下:美元curl-o http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz.

如果你没有安装这两个工具,你必须找到另一种方法将tar包下载到你的本地目录——,比如通过浏览器或者本地网络。

(本书的例子使用了编写时最新的稳定版本:0.6.12)。

构建节点

现在我们有了源代码,可以用它来构建Node的可执行文件。首先,您需要解压缩之前下载的tar包:复制代码如下:美元tar xfz node-v0.6.12.tar.gz。

然后进入源目录:复制代码如下:$ cd节点-v0.6.12配置:复制代码如下:$。/如果配置顺利,会看到成功的提示: Copy代码如下:$。/configure '已成功完成(9.278秒)。然后就可以开始编译了:复制的代码如下:$ make。编译后会出现如下提示:复制的代码如下: build '成功完成(0.734s)。

安装节点

构建完成后,使用以下命令安装Node:复制代码如下:$ make install此操作将把Node可执行文件复制到/user/local/bin/node。

如果遇到权限问题,在命令前添加sudo,以root身份执行,可以复制代码:代码如下:$ sudo使安装运行Node。

现在可以运行node了,可以简单体验一下Node的CLI :命令行界面,只需要调用Node的可执行文件:复制代码如下:$ node这个操作会启动Node的命令行界面,等待你的输入。输入以下命令,让Node做一些事情来查看:复制代码如下: console.log('Hello World!').);你好世界!Undefined也可以运行一个JavaScript脚本文件。例如,您创建了一个名为hello_world.js的文件,其中包含以下内容:复制代码为:console.log('Hello World!').);然后用这个脚本的文件名作为第一个参数调用Node可执行文件:复制代码如下: $ Node hello _ world . js hello world!最后,使用Ctrl D或Ctrl C退出Node命令行界面。

并准备使用节点包管理器。

到目前为止,您只能使用Node的语言特性和核心功能,这就是为什么大多数程序平台都有一个用于下载、安装和管理第三方模块的系统。在节点中,我们使用节点包管理器(NPM:节点包管理器)。

NPM由三部分组成:用于存储第三方包的代码库、用于管理本地安装的包的机制以及用于定义包依赖关系的标准。NPM提供公共注册服务,其中包含所有人发布的软件包,并提供了一个命令行工具来下载、安装和管理这些软件包。您可以根据Node的包格式标准来制定您的包或应用程序需要依赖的其他第三方包。

虽然你可以在不了解NPM的情况下开始使用Node,但是如果你想使用第三方的包,就必须要学会,因为Node本身只提供了一些低级的API,使用第三方的模块可以大大降低开发的复杂度,所以你不用自己编写所有的代码。NPM允许你在沙箱中下载和使用模块,这样你就可以实验你感兴趣的东西,而不用担心污染整个包环境。

NPM和节点过去是独立安装的。从0.6.0版本开始,节点的安装包中就包含了NPM。

使用NPM安装、升级和卸载软件包。

NPM非常强大,你可以在很多方面使用它。它的代码库集中管理所有公共模块,您可以通过http://search.npmjs.org访问它。Node开源模块的作者可以将自己的模块发布到NPM,其他人可以使用包安装描述中的模块名称下载并安装这个模块。

这一部分包含了一些安装和删除包的常见操作,这足以让您开始管理自己的应用程序所依赖的第三方包。但是,您需要了解这些命令在“全局”和“本地”模式下的区别,以及它们如何影响依赖关系和模块搜索。

NPM模块的全局和局部模式。

NPM有两种主要的运营模式:全球和本地。这两种模式将影响包存储的目录结构和节点加载包的顺序。

本地模式是NPM的默认操作模式。在这种模式下,NPM只在工作目录中工作,不会引起系统范围的修改。此模式允许您在某个节点程序下自由安装和测试模块,而不会影响计算机上的其他节点程序。

全局模式适用于会被很多程序使用并且总是全局加载的公共模块,比如命令行工具,应用程序不会直接使用。

如果您不知道模块应该安装在哪种模式下,您应该使用本地模式。如果一个模块的作者需要全局安装一个模块,他通常会在安装说明中指出。

全局方式

如果在安装节点时使用默认目录,NPM将以全局模式将包安装到/usr/local/lib/node_modules。如果您执行以下命令,NPM将搜索并下载名为sax的最新版本,并将其安装在/usr/local/lib/node _ modules/sax目录中。复制代码如下: $ npminstallg sax注意:如果您当前的shell用户没有足够的权限,则需要以root用户身份登录或使用sudo执行命令:复制代码如下: $ sudo npminstallg sax然后当您在Node脚本中需要sax模块时,使用以下语句加载它:复制代码如下: var sax=require ('sax)。如果您没有在应用程序目录中以本地模式安装sax,Node将在以前的安装目录中寻找一个名为sax的模块,否则,它将优先加载本地版本。

默认模式是本地模式,因此您需要在NPM命令后添加-g来启用全局模式。

本地方式

本地模式是Node包依赖机制的默认推荐模式。在此模式下,NPM安装的所有内容都在当前工作目录中(根目录也不例外),不会影响任何全局设置。这种机制允许您逐个设置应用程序的依赖模块及其版本,而不用担心污染全局模块空间。这意味着您可以有两个依赖于同一个模块的不同版本的应用程序,但它们不会冲突。

在这种模式下,NPM使用当前工作目录下的node_modules目录来存储模块,例如,您当前的工作目录是/home/user/apps/my_app,而NPM将使用/home/user/apps/my _ app/node _ modules来存储所有本地模块。这意味着,如果使用模块名来引用代码中的模块,Node会首先在这个本地node_modules目录中查找,如果没有找到,就会搜索全局node_modules目录,本地模块的优先级始终高于全局模块。

安装模块

使用以下命令安装模块的最新版本。复制代码如下:$ npm安装包名称。

例如,要下载并安装名为sax的模块的最新版本,首先需要将应用程序的根目录设置为当前目录,然后输入:复制代码如下:$ npm install sax。此操作将在当前目录中创建一个node_modules子目录(如果它不存在),然后在下面安装sax模块。

您也可以通过以下命令选择安装特定版本:复制代码如下:美元NPM安装包名@ versionspec,只需将命令中的占位符替换为指定的版本号,例如,下载0.2.5版本的sax模块。您只需要运行:按照如下方式复制代码: $ npminstall[email protected]占位符也可以替换为版本范围,例如,安装sax模块0.2分支的最新版本。是的:复制代码如下。特雷弗Turnbull.com/'rel='外部nofollow '伟哥Canada online/a install[email protected]或者,Install最新版本,版本号小于0.3:复制代码如下: $ npminstall[email protected]“0.3”,甚至可以指定版本范围:复制代码如下: $ npminstall[email protected]'=0 . 1 . 00 . 3 . 1 '。

卸载模块

使用以下命令卸载本地模块:复制代码如下:美元npm卸载软件包名称如果要卸载全局模块,请添加-g标记:复制代码如下:美元NPM卸载-g软件包名称更新模块。

使用以下命令更新本地模块:

复制代码如下:$ npm更新包名称此命令将尝试获取模块包的最新版本并更新本地版本。如果不是本地安装,将会安装。如果需要更新全局环境,需要用-g标记:Copy代码如下:$ npm update -g包名。

使用可执行文件。

该模块可以包含一个或多个可执行文件。如果使用默认目录设置安装全局模块,NPM将在/usr/local/bin目录中安装可执行文件,该目录通常被设置为系统PATH环境变量的一部分。如果您部分安装此模块,NPM会将所有可执行文件放在。/node_modules/。bin目录。

处理依赖关系。

NPM不仅会安装您需要的模块包,还会安装这些模块所依赖的其他模块。例如,如果您需要安装模块A,而模块A依赖于模块B和模块C,那么当您安装模块A时,模块B和模块C都将安装在目录中。/node_modules/A/node_modules。

例如,您使用以下命令在本地安装了一个名为nano的模块:复制代码如下:美元npm install nanoNPM的输出将如下所示:

这告诉您nano module依赖于下划线和请求,并且还指示安装的版本。如果你看看。/node _ modules/nano/node _ modules目录现在,您会发现这两个模块已经安装:复制代码如下: $ ls node _ modules/nano/node _ modules请求下划线。

使用package.json文件定义依赖关系。

编写应用程序时,可以在应用程序的根目录下创建一个package.json文件来定义应用程序的元数据,例如应用程序的名称、作者、代码基地址和联系信息。程序所依赖的外部模块也在该文件中指定。

如果你不打算把程序发布到NPM,你不需要建立这个文件,但是即使你的程序是私有的,这个文件实际上是有用的,它可以告诉NPM这个应用程序的依赖性。(译者注:例如将项目源代码从开发环境复制到生产环境,可以通过调用npm install一次安装所有依赖包,npm会通过package.json中指定的依赖项自动下载并安装依赖模块,无需逐个操作,后面会详细介绍)。

Package.json是一个json格式的文件,里面包含了一系列的属性,但是如果只是为了说明程序的依赖关系,只需要一个依赖属性。例如,一个名为MyApp的应用程序依赖于sax、nano和request模块,只需要构建这样一个包。

名称' : 'MyApp ',

版本' : '1.0.0 ',

依赖项' : {

sax' : '0.3.x ',

nano' : '*,

请求' : '0.2.0 '

}

}

您指定了MyApp应用程序,依赖于0.3版本的sax、任何版本的nano以及版本高于0.2.0的请求模块。

注意:您可能会发现,如果指定名称和版本字段,NPM将不起作用,这只会发生在旧版本的NPM,因为最初NPM用于公共模块,而不是私有程序。

然后,在应用程序的根目录中,执行:按照如下方式复制代码:$ npm install。

这样,NPM将分析依赖关系和您的本地node_modules目录,并自动下载和安装缺失的模块。

您还可以使用以下命令将所有本地模块更新到符合您定义的依赖项设置的最新版本:复制代码如下:$npm update事实上,您只能使用update方法,因为它将允许npm自动获取那些缺失的依赖项模块。

总结

在本章中,我学习了如何安装节点和节点包管理器(NPM)。现在,您可以使用NPM安装、卸载和删除任何第三方模块。我还学习了如何使用NPM结合package.json文件来管理应用程序依赖关系。

现在您已经安装了Node和NPM,您可以自己尝试,但是首先您需要了解一些关于Node和事件驱动的知识,这将在下一章中介绍。

版权声明:Node.js安装教程和NPM包管理器使用细�是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。