Node.js学习笔记(二、NPM 使用)

介绍

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
    由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。

使用 npm 命令安装模块

npm 安装 Node.js 模块语法格式如下:

$ npm install <Module Name>

全局安装与本地安装

npm 的包安装分为本地安装(local)、全局安装(global)两种:

  • 本地安装
     1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
     2. 可以通过 require() 来引入本地安装的包。
  • 全局安装
     1. 将安装包放在 /usr/local 下或者node 的安装目录。
     2. 可以直接在命令行里使用。

例如: npm 命令本地安装常用的 Node.js web框架模块 express。

npm install express

Node.js学习笔记(二、NPM 使用)

当前路径下生成了一个目录node_modules和一个文件package-lock.json。

node_modules目录:

Node.js学习笔记(二、NPM 使用)

express目录:

Node.js学习笔记(二、NPM 使用)

package.json文件:

Node.js学习笔记(二、NPM 使用)

Package.json 属性说明:

  • .name - 包名。
  • .version - 包的版本号。
  • .description - 包的描述。
  • .homepage - 包的官网 url 。
  • .author - 包的作者姓名。
  • .contributors - 包的其他贡献者姓名。
  • .dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
  • .repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
  • .main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
  • .keywords - 关键字

卸载模块

卸载模块命令:

$ npm uninstall express

Node.js学习笔记(二、NPM 使用)

卸载后,到 /node_modules/ 目录下查看,express包没有了,或者使用以下命令查看:

$ npm ls

更新模块

命令:

$ npm update express

搜索模块

命令:

$ npm search express

创建模块

  • 新建项目目录:
E:\project\hookhook
  • 在目录里写个js文件thress.js。
function hello(){
  console.log("Give you a hook");
}
exports.hello=hello;
  • package.json
    用 npm 命令来创建package.json 文件,
npm init

如果是要发布模块的话,keywords填npmjs.com上的密码,author填npmjs.com的名字。也可以随便填,要发布的时候再改package.json也是可行的。

Node.js学习笔记(二、NPM 使用)

详解:

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (node_modules) runoob                   # 模块名
version: (1.0.0) 
description: Node.js 测试模块(www.runoob.com)  # 描述
entry point: (index.js) 
test command: make test
git repository: https://github.com/runoob/runoob.git  # Github 地址
keywords:                            #密码
author:                                #名字
license: (ISC) 
About to write to ……/node_modules/package.json:      # 生成地址

{
  "name": "runoob",
  "version": "1.0.0",
  "description": "Node.js 测试模块(www.runoob.com)",
  ……
}


Is this ok? (yes) yes

现在在路径下生成了一个package.json文件(就是刚才输入的些东西)。

{
  "name": "hookhook",
  "version": "1.0.0",
  "description": "heyhook",
  "main": "three.js",
  "scripts": {
    "test": "make test"
  },
  "keywords": [
    "laughter8888"
  ],
  "author": "laughter",
  "license": "ISC"
}

发布模块

加载的模块从哪来的呢——也是别人发布的,所以同样可以通过npm工具发布模块。

  • 注册
    所有npm都是发布在 https://www.npmjs.com/ 上面的,所以在发布之前,需要到 npmjs 上去注册一个账号,才有权限发布自己定义模块。

Node.js学习笔记(二、NPM 使用)

  • 激活账号
    注册之后,会发个邮件到邮箱,要激活一下,不然无法发布。

Node.js学习笔记(二、NPM 使用)

  • 登录
npm adduser

Node.js学习笔记(二、NPM 使用)

登录成功!

  • 发布
    登录成功之后就可以发布了。
npm publish

Node.js学习笔记(二、NPM 使用)

发布成功。

npm表示love you!

Node.js学习笔记(二、NPM 使用)

使用淘宝 NPM 镜像

npm服务器在国外,用起来是比较慢的,所以可以使用使用淘宝 NPM 镜像。

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

  • 安装CNPM
    全局安装cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org

Node.js学习笔记(二、NPM 使用)

  • 检测安装
    和npm检测安装类似。
cnpm -v

  • 安装模块
    和npm差不多,
$ cnpm install [name]
  • 发布
    cnpm 本质上是复制库,它只负责从源库定期复制国内库,所以不支持通过 cnpm publish 发布到复制库上。
    要发布,还是要通过 npm 发布到源库,然后耐心等待复制库同步。
  • 官方地址
    更多信息可以查阅:http://npm.taobao.org/
上一篇:PHPExcel 使用笔记


下一篇:Android官方开发文档Training系列课程中文版:管理音频播放之控制APP的音量与播放