npm与yarn介绍与常用命令

NPM介绍

  • npmnode.js的包管理器,用于node插件管理(包括安装,卸载,管理依赖等)

  • cnpm是淘宝团队分享的使用国内镜像来代替国外服务器

  • 参数

    • -g参数

      • 全局安装(global),可以在命令行下直接使用
      • 可以通过npm root -g查看全局安装的文件夹位置
    • -S参数

      --save安装包信息将加入到dependencies(生产阶段的依赖)

    • -D参数

      --save--dev安装包信息将加入到devDependencies(开发阶段的依赖)

    • i参数

  • npm init -f配置文件初始化

  • npm -v查看npm版本信息

使用 npm 命令安装模块

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

$ npm install <Module Name>

以下实例,我们使用 npm 命令安装常用的 Node.js web框架模块 express:

$ npm install express

安装好之后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require('express') 的方式就好,无需指定第三方包路径。

var express = require('express');

全局安装与本地安装

npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如

npm install express      # 本地安装
npm install express -g   # 全局安装

如果出现以下错误:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

解决办法为:

$ npm config set proxy null
本地安装
    1. 将安装包放在./node_modules下(运行npm命令时所在的目录),如果没有node_modules目录,会在当前执行npm 命令的目录下生成node_modules目录。
    1. 可以通过require()来引入本地安装的包。
全局安装
    1. 将安装包放在/usr/local(Linux)下或者你node的安装目录。

      Windows下的全局安装的默认地址C:UsersXXXAppDataRoaming pm

    1. 可以直接在命令行里使用。

如果你希望具备两者功能,则需要在两个地方安装它或使用npm link

如何改变npm全局安装路径?

  1. 使用命令的方式

    npm config set prefix '路径'

  2. 修改npmrc文件

    npmrcnode ode_modeules pm

    npmrc文件就是记录npm全局安装的路径。修改这个文件就可以更改npm的全局安装路径。注意:npmrc中设置的路径必须和环境变量中的路径保持一致

接下来我们使用全局方式安装express

$ npm install express -g

安装过程输出如下内容,第一行输出了模块的版本号及安装位置。

express@4.13.3 node_modules/express
├── escape-html@1.0.2
├── range-parser@1.0.2
├── merge-descriptors@1.0.0
├── array-flatten@1.1.1
├── cookie@0.1.3
└── send@0.13.0 (destroy@1.0.3, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-errors@1.3.1)

查看安装信息

你可以使用以下命令来查看所有全局安装的模块:

$ npm list -g

├─┬ cnpm@4.3.2
│ ├── auto-correct@1.0.0
│ ├── bagpipe@0.3.5
│ ├── colors@1.1.2
│ ├─┬ commander@2.9.0
│ │ └── graceful-readlink@1.0.1
│ ├─┬ cross-spawn@0.2.9
│ │ └── lru-cache@2.7.3
……

如果要查看某个模块的版本号,可以使用命令如下:

$ npm list grunt

projectName@projectVersion /path/to/project/folder
└── grunt@0.4.1

使用 package.json

package.json位于模块的目录下,用于定义包的属性。接下来让我们来看下express包的package.json文件,位于 node_modules/express/package.json

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_modules/ 目录下查看包是否还存在,或者使用以下命令查看:

$ npm ls

更新模块

$ npm update express

搜索模块

$ npm search express

Yarn

Yarn介绍

Yarn就是一个类似于npm的包管理工具,它是由facebook推出并开源。与npm相比,yarn有着众多的优势,主要的优势在于:速度快、离线模式、版本控制。

Yarn 换源

使用yarn来安装依赖时的体验比npm要好很多;但是偶尔也会存在yarn源仓库包下载不稳定的情况

// 查看 yarn 配置
yarn config get registry
//或者
yarn config list

> registry: 'https://registry.yarnpkg.com'

一 临时修改

yarn add 软件名 --registry https://registry.npm.taobao.org/

二 全局修改,安装淘宝镜像

yarn config set registry https://registry.npm.taobao.org

三 使用第三方软件快速修改、切换yarn镜像源
yrm(YARN registry manager) 不仅可以快速切换镜像源,还可以测试自己网络访问不同源的速度

# 安装 yrm
npm install -g yrm

# 列出当前可用的所有镜像源
yrm ls

// npm -----  https://registry.npmjs.org/
// cnpm ----  http://r.cnpmjs.org/
// taobao --  https://registry.npm.taobao.org/
// nj ------  https://registry.nodejitsu.com/
// rednpm -- http://registry.mirror.cqupt.edu.cn
// skimdb -- https://skimdb.npmjs.com/registry
// yarn ----  https://registry.yarnpkg.com

# 使用淘宝镜像源
yrm use taobao

# 测试访问速度
yrm test taobao

YARN命令

  1. 版本查看
yarn -v
  1. 建立新工程
yarn init # 初始化项目,生成 package.json 文件(需要手动选择配置)
  1. 添加依赖包
# 通过 yarn add 添加依赖会更新 package.json以及 yarn.lock 文件

# 开发环境
yarn add <PackageName> # 依赖会记录在 package.json 的 dependencies 下 开发环境

# 生产环境
yarn add <packageName> --dev # 依赖会记录在 package.json 的 devDependencies 下 生产环境
  1. 安装全局依赖包
yarn global add <PackageName>
  1. 更新依赖包
yarn upgrade               # 升级所有依赖项,不记录在package.json中
yarn upgrade <PackageName> # 升级指定包
yarn upgrade --latest      # 忽略版本规则,升级到最新版本,并且更新 package.json
  1. 移除依赖包
yarn remove <PackageName>
  1. 安装package.json中的所有文件

yarn或者yarn install

yarn install # 或者yarn在node_modules目录安装package.json中列出的所有依赖
yarn install --force # 强制下载安装 如果 node_modules 中有相应的包则不会重新下载 --force 可以强制重新下载安装
  1. 运行脚本

yarn run用来执行在 package.json 中 scripts 属性下定义的脚本

// package.json
{
"scripts": {

"dev": "node app.js",

"start": "node app.js"
}
}
yarn run dev # yarn 执行 dev 对应的脚本 node app.js
  1. 显示某个包信息
yarn info <packageName>        # 可以用来查看某个模块的最新版本信息
yarn info <packageName> --json # 输出 json 格式
yarn info <packageName> readme # 输出 README 部分
  1. 列出项目的所有依赖
yarn list          # 列出当前项目的依赖
yarn global list   # 列出全局项目的依赖
  1. 管理 yarn 配置文件
yarn config
yarn config set key value # 设置
yarn config get key       # 读取值
yarn config delete key    # 删除
yarn config list          # 显示当前配置
yarn config set registry https://registry.npm.taobao.org # 设置淘宝镜像
  1. 缓存
yarn cache
yarn cache list  # 列出已缓存的每个包
yarn cache dir   # 返回 全局缓存位置
yarn cache clean # 清除缓存
  1. Yarn 独有的命令
yarn licenses ls       # 允许你检查依赖的许可信息
yarn licenses generate # 自动创建依赖免责声明 license
yarn why taco          # 检查为什么会安装 taco,详细列出依赖它的其他包
yarn why vuepress      # 检查为什么会安装 vuepress,详细列出依赖它的其他包

修改Yarn的全局安装和缓存位置

  1. 修改全局安装位置

    • 改变 yarn 全局安装位置

      yarn config set global-folder <你的磁盘路径>

      你会在你的用户目录找到 .yarnrc 的文件,打开它,找到 global-folder

  2. 改变 yarn 缓存位置

    yarn config set cache-folder <你的磁盘路径>

在我们使用全局安装包的时候,会在D:Softwareyarnglobal下生成 node_modules.bin 目录

我们需要将D:Softwareyarnglobal ode_modules.bin整个目录 添加到系统环境变量中去,否则通过yarn添加的全局包 在命令行中是找不到的。

检查当前yarnbin的位置

yarn global bin

检查当前yarn的全局安装位置

yarn global dir

yarn的常用命令
修改Yarn的全局安装和缓存位置

原文地址:https://www.cnblogs.com/ingram03/p/14190896.html