购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 使用npm install

要使用npmjs.org上大量的第三方模块,需要使用npm install命令,这里只介绍最常用的格式。


// 安装模块,默认最新版本 
npm install [<@scope>/]<name> 
 
// 通过指定tag来安装模块 
npm install [<@scope>/]<name>@<tag> 
 
// 通过指定版本号来安装模块,如果版本号不存在会失败 
npm install [<@scope>/]<name>@<version> 
 
 // 通过指定版本号的范围来安装模块 
npm install [<@scope>/]<name>@<version range> 

下面是实际的使用例子。


// 安装angular-cli,默认最新版本 
npm install @angular/cli 
 
// 安装express 的4.17.1版本(4.17.1是版本号的同时也是tag) 
npm installl express@4.17.1 
 
// 安装指定版本范围内的koa,默认取上限 
npm install koa@">=2.6.0 <2.8.1" 

如果一个模块会被很多项目引用,或者一些模块本身提供了命令行工具,如angular-cli或者pm2,那么把这些模块安装在全局环境下是更好的选择。要以全局模式安装,只需要在运行npm install命令时加上-g参数即可,这样就可以在命令行中引用该模块。


// 全局模式安装gulp模块 
$ npm install -g gulp 
 
// 安装成功后便可以在控制台中使用gulp命令 
$  gulp -v 
CLI version: 2.2.0 
Local version: 4.0.2 

使用install命令而不带任何参数的情况下会把安装的模块名称和版本号写入package.json的dependencies字段中。使用全局模式安装的模块信息不会出现在package.json中。如果在运行npm install的时候不指定版本号,那么就会默认下载最新的版本。


"dependencies": { 
    "@angular/cli": "^8.3.5", 
    "express": "^4.17.1", 
    "koa": "^2.8.0" 
} 

Node使用语义化的符号来表示模块的版本,表2-1列出了npm的版本号匹配规则。

表2-1 version字段匹配规则

有些在开发阶段用到的第三方模块在生产环境并不需要,如测试脚手架、代码分析库等。为了区分,package.json将第三方模块分成dependencies和devDependencies。

在运行npm install的时候增加--save-dev参数,就会把对应的模块信息写入devDependencies字段中。同时,当代码库上传到生产环境后,运行npm install --production,该命令会忽略devDependencies中的依赖,只安装dependencies字段下定义的模块。


// 将gulp作为devDependency安装 
npm install gulp --save-dev 

下面是一个完整的package.json文件示例。 F8xmAjTdGOg7ZlHSxHk5wAGjKG8KJNjPVDpiZxcsUJ9ZrDdQrvczv4PX3zGLs9z5


{ 
  "name": "etest", 
  "version": "1.0.0", 
  "description": "", 
  "main": "server.js", 
  "directories": { 
     "lib": "lib" 
  }, 
  "dependencies": { 
     "angular": "^1.7.9", 
     "express": "^4.17.1" 
  }, 
  "devDependencies": { 
     "jasmine": "^3.5.0", 
     "gulp": "^4.0.2" 
  }, 
  "scripts": { 
     "test": "echo \"Error: no test specified\" && exit 1", 
     "start": "node server.js" 
  }, 
  "keywords": [], 
  "author": "", 
  "license": "ISC" 
} 

点击中间区域
呼出菜单
上一章
目录
下一章
×