跳转至

Nodejs 包管理器 NPM


2018-02-14 by dongnan

什么是 Node.js ?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

有那些特性?

Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

如何安装 Node.js ?

推荐使用 docker 创建一个 Node.js 环境,详细请参考这里;

什么是 NPM ?

NPM (node package manager) 是 Node.js 的包管理器,是全球最大的开源库生态系统, 通过 NPM 可以找到大量优秀的第三方模块,也可以上传并共享自己的模块。

更重要的是 NMP 还可以帮助解决依赖关系等。

由于新版的 Node.js 已经集成了 npm,可以通过输入 npm -v 来查看版本 :

npm -v

5.6.0

常用命令

搜索模块

npm search express | head -n2

NAME    | DESCRIPTION    | AUTHOR    | DATE       | VERSION  | KEYWORDS
express    | Fast,…    | =hacksparrow…    | 2017-10-10 | 4.16.2   | express framework sinatra web rest restful router app api

安装模块

express 是常用的 Node.js web框架模块。

npm install express

npm WARN saveError ENOENT: no such file or directory, open '/root/package.json'
# ...省略
+ express@4.16.2
added 49 packages in 10.562s

安装好的 express 模块就放在了工程目录下的 node_modules 目录

ls ~/node_modules/express/

History.md  LICENSE   Readme.md   index.js  lib package.json

全局与本地

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

本地安装

  • 将安装包放在 ./node_modules 下(运行命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  • 可以通过 require() 来引入本地安装的包。

全局安装

  • 将安装包放在 /usr/local 下或者你 node 的安装目录。
  • 可以直接在命令行里使用。

尝试使用全局方式安装 express

npm -g install express

+ express@4.16.2
added 49 packages in 7.871s

# 安装的目录
ls /usr/local/lib/node_modules/express/

History.md    LICENSE       Readme.md     index.js      lib           node_modules  package.json

检查安装信息

npm list express -g
/usr/local/lib
`-- express@4.16.2

模块信息文件

package.json 位于模块的目录下,用于定义包的属性。看下 express 包的 package.json 文件

head /usr/local/lib/node_modules/express/package.json

{
  "_from": "express",
  "_id": "express@4.16.2",
  "_inBundle": false,
  "_integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
  "_location": "/express",
  "_phantomChildren": {},
  "_requested": {
    "type": "tag",
    "registry": true, 

更新模块

npm update express -g

卸载模块

npm uninstall express -g

removed 49 packages in 0.932s

参考

回到页面顶部