我的Node.js学习之路(二)NPM模块管理

NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。有了NPM,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。

NPM常用的命令有:

(1)$ npm install moduleNames
               安装Node模块
               注意事项:如果在使用模块的时候不知道其名字,可以通过http://search.npmjs.org网站按照
                                索引值找到想要的模块。npm也提供了查询的功能  $ npm search indexName
                                 安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。
                                 node的安装分为全局模式和本地模式。一般情况下会以本地模式运行,包会被安装
                                到和你的应用代码统计的本地node_modules目录下。在全局模式下,Node包会被
                                安装到Node的安装目录下的node_modules下。全局安装命令为
                                $ npm install -g moduleName。获知使用$npm set global=true来设定安装模式
                              ,$npm get global可以查看当前使用的安装模式。

(2)$ npm view moduleNames
                 查看node模块的package.json文件夹
                注意事项:如果想要查看package.json文件夹下某个标签的内容,可以使用
                                 $ npm view moduleName labelName

(3)$ npm list
                查看当前目录下已安装的node包
                注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中
                                 的node_modules下的内容。$ npm list parseable=true可以目录的形式来展现当
                                 前安装的所有node包

(4)$ npm help
                查看帮助命令

(5)$ npm view moudleName dependencies
                查看包的依赖关系

(6)$ npm view moduleName repository.url
               查看包的源文件地址

(7)$ npm view moduleName engines
               查看包所依赖的Node的版本

(8)$npm help folders
                查看npm使用的所有文件夹

(9)$ npm rebuild moduleName
                用于更改包内容后进行重建

(10)$ npm outdated
                 检查包是否已经过时,此命令会列出所有已经过时的包,可以及时进行包的更新

(11)$ npm update moduleName
                     更新node模块

(12)$ npm uninstall moudleName
                      卸载node模块

(13)一个npm包是包含了package.json的文件夹,package.json描述了这个文件夹的结构。访
                      问npm的json文件夹的方法如下:
                            $ npm help json
                      此命令会以默认的方式打开一个网页,如果更改了默认打开程序则可能不会以网页的形式打
                      开。

(14)发布一个npm包的时候,需要检验某个包名是否已存在
                    $ npm search packageName

(15)很多时候我们在使用一个npm包的时候经常会忘记了require其相互依赖的模块,我们可以
                     借助如如下命令来查看此模块相互依赖的包都有哪些
 
 npm是Node.JS的程序包管理器。进行Node.JS开发时,经常使用它安装/卸载程序包。实际上,发布程序包的工作也是由它来完成的。

配置package.json

要打包程序,首先要配好各项设置,这些设置都由程序包根目录下的package.json指定。package.json的内容必须是严格的JSON格式,也就是说:

字符串要用双引号括起来,而不能用单引号;
属性名一定要加双引号;
最后一个属性后千万不要多加一个逗号。
配置对象的属性很多,具体可以参阅这里,这里列一下常用的项目:

name:程序包名,不能跟已有的程序包重复。
version:版本号。
description:一段简短的介绍。
author:作者信息。包含name、email、url三项属性。
bin:如果程序中有可执行文件(主要是命令行里面调用的),就在这里指定,可以指定多个。
main:使用require调用本程序包时的程序入口。
dependencies:依赖的程序包,可以指定版本号。

配置好package.json后,可以先在本地打包安装一次,测试程序运作是否正常,安装命令为:

npm install <本地路径>

另外,还有一条潜规则要注意,如果你希望程序包中的可执行程序在Node.JS的环境中运行,那么,请在程序入口文件的最前面加上这样一行:

#!/usr/bin/env node

如果没有这一行,它将以系统默认的方式打开,而不是在Node.JS的环境中运行。

注册npm帐号

要把程序包发布到npm,还需要先注册一个帐号。npm并没有提供网页版的注册向导。注册也要通过命令行来进行:

npm adduser
执行此命令后,会依次出现输入用户名、Email、密码的提示,输入好之后等待一会儿就可以了。

发布程序包

准备工作都做好了,执行下面的命令就可以发布程序包:

npm publish <本地路径>
如果要更新程序包,只要修改一下package.json中的版本号,再重新执行发布命令就可以了。

(0)

相关推荐

  • Node.js模块加载详解

    JavaScript是世界上使用频率最高的编程语言之一,它是Web世界的通用语言,被所有浏览器所使用.JavaScript的诞生要追溯到Netscape那个时代,它的核心内容被仓促的开发出来,用以对抗Microsoft,参与当时白热化的浏览器大战.由于过早的发布,无可避免的造成了它的一些不太好的特性. 尽管它的开发时间很短,但是JavaScript依然具备了很多强大的特性,不过,每个脚本共享一个全局命名空间这个特性除外. 一旦Web页面加载了JavaScript代码,它就会被注入到全局命名空间,

  • Node.js中对通用模块的封装方法

    在Node.js中对模块载入和执行进行了包装,使得模块文件中的变量在一个闭包中,不会污染全局变量,和他人冲突. 前端模块通常是我们开发人员为了避免和他人冲突才把模块代码放置在一个闭包中. 如何封装Node.js和前端通用的模块,我们可以参考Underscore.js 实现,他就是一个Node.js和前端通用的功能函数模块,查看代码: 复制代码 代码如下: // Create a safe reference to the Underscore object for use below.  var

  • 跟我学Nodejs(二)--- Node.js事件模块

    简介及资料 http://nodejs.org/api/events.html http://www.infoq.com/cn/articles/tyq-nodejs-event events是node.js 最重要的模块,events模块只提供了一个对象events.EventEmitter,EventEmitter 的核心是事件发射与事件监听器. Node.js中大部分的模块,都继承自Event模块. 与DOM树上事件不同,不存在事件冒泡.逐层捕获等行为. EventEmitter 支持若干

  • Node.js中HTTP模块与事件模块详解

    Node.js的http服务器 通过使用HTTP模块的低级API,Node.js允许我们创建服务器和客户端.刚开始学node的时候,我们都会遇到如下代码: 复制代码 代码如下: var http = require('http'); http.createServer(function (req,res) {     res.end('Hello World\n'); }).listen(3000,"127.0.0.1"); console.log("Server funni

  • node.js使用require()函数加载模块

    详细说明均以写在注释之中,这里就不啰嗦了,小伙伴们自己详细看吧,千万别吧注释当成空气了. 复制代码 代码如下: /*在node中,可以使用require()函数来加载模块.  * require函数使用一个参数,参数值可以带有完整路径的模块的文件名,也可以为模块名.当使用node中提供的模块时,在require函数中只需要指定模块名即可.  * */ //建立一个页面2.js;代码如下 var name="思思博士"; exports.name=name; //建立一个页面1.js;代

  • 跟我学Nodejs(三)--- Node.js模块

    简介及资料 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require('模块名')去获取:核心模块具有最高的加载优先级(有模块与核心模块同名时会体现) (本次主要说自定义模块) Node.js还有一类模块为文件模块,可以是JavaScript代码文件(.js作为文件后缀).也可以是JSON格式文本文件(.json作为文件后缀).还可以是编辑过的C/C++文件(.node作为文件后

  • Node.js用readline模块实现输入输出

    什么是Readline Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流.使用require("readline")可以引用模块. 如何使用Readline 以使用为角度的话,学习Readline,我们需要学习它的三个部分: 创建Readline实例 学习里面的接口方法 学习监听与处理Readline事件 下面我们通过实例来学习这三个部分. 实例1:我叫小明 代码如下: /** * Created by Administrat

  • Node.js中Request模块处理HTTP协议请求的基本使用教程

    这里来介绍一个Node.js的模块--request.有了这个模块,http请求变的超简单. Request使用超简单,同时支持https和重定向. var request = require('request'); request('http://www.google.com', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // 打印goo

  • 使用C++为node.js写扩展模块

    前提: 安装好node.js.Python2.7与visual studio 2013. 过程: 首先安装GYP项目生成工具,npm install -g node-gyp . 建立test目录,这是我们的工作目录,在此目录下再建一个src目录,用来存放C++源代码,另新建一个名为binding.gyp的文本文件,这是gyp的项目文件,内容如下: 复制代码 代码如下: {     'targets':[{         'target_name':'hello',         'sourc

  • NODE.JS加密模块CRYPTO常用方法介绍

    使用require('crypto')调用加密模块. 加密模块需要底层系统提供OpenSSL的支持.它提供了一种安全凭证的封装方式,可以用于HTTPS安全网络以及普通HTTP连接. 该模块还提供了一套针对OpenSSL的hash(哈希),hmac(密钥哈希),cipher(编码),decipher(解码),sign(签名)以及verify(验证)等方法的封装. crypto.createCredentials(details) 创建一个凭证对象,可选参数details为一个带键值的字典: key

随机推荐