UP | HOME

Node.js npm 和 yarn

Table of Contents

1 简介

在目前前后端分离的大环境下,基本上前端技术都跑不掉需要使用 nodejs。在使用 nodejs 时就会接触到 nodejs 的包管理工具,也就是 npm , npm 是 nodejs 默认的包 管理工具,如果没有大量使用的需求,直接 npm 就可以面对日常工作中的包管理。关键 是除了 npm,nodejs 还有一个叫做 yarn 的包管理工具,yarn 与 npm 基本上功能类似, 只是 yarn 下载包时会缓存下载过的包,所以再次使用时无需重复下载,优化用户体验。

2 安装

2.1 Windows

Windows 操作系统安装 node 非常简单,直接去 nodejs 官网上下载安装包运行安装即 可。安装好后,如果将对应的 bin 文件夹添加到 PATH 环境变量中后,就会出现 node 和 npm 命令,这样就可以使用。

2.2 Ubuntu

使用包管理器可以安装默认源中的工具

sudo apt install nodejs npm

不过一般默认的 npm 版本比较老,为了使用最新版本的 node,并且便捷地切换 node 版本。建议安装 n 这个 npm 包,可以动态切换 node 的版本,参考命令如下:

# 全局安装 n
npm install -g n
# 升级 nodejs 到最新版
n latest
# 升级 nodejs 到最新稳定版
n stable
# 安装 v10.11.0 版本的 node
n 10.11.0

3 配置用户级别的全局安装路径

在 Linux 系统中,普通用户不一定能将 npm 包全局安装到系统中。为解决这样的权限问 题,可以配置 prefix 参数,来改变 npm 包的全局仓库的存储路径

mkdir -p ~/.npm/node_modules
npm config set prefix=~/.npm/node_modules

echo 'export PATH=$HOME/.npm/node_modules/bin:$PATH' >> ~/.bashrc

4 使用淘宝镜像源

npm 和 yarn 在配置国内 淘宝镜像源 的时候需要配置以下文件:

# ~/.npmrc
registry=https://registry.npm.taobao.org
disturl=https://npm.taobao.org/dist
# ~/.yarnrc
registry "https://registry.npm.taobao.org"

或者直接使用配置命令来设置源

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

查看设置的配置项

npm config ls -l
yarn config list

一些包需要添加淘宝加速器

export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node
export SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass
export ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/
export SQLITE3_BINARY_SITE=http://npm.taobao.org/mirrors/sqlite3

5 下载项目包

在初始化前端项目后,需要安装项目中的依赖库。项目的 package.json 文件中的记录 将对应项目依赖的包,使用下面命令可以将依赖包下载到本地 node_modules 文件夹中

npm install
yarn install

6 全局安装包

将一些命令行工具安装到全局包仓库中

npm install -g package-name
yarn global add package-name

查看全局包

npm list -g --depth 0

卸载全局包

npm uninstall -g package-name

7 安装项目模块

给当前项目添加一个包,并将引用信息添加的 package.json 文件中。

npm install --save package-name
npm install --save-dev package-name
yarn add package-name
yarn add package-name@1.2.3 # 制定安装版本
yarn add --dev package-name

8 卸载项目模块

卸载将当前项目中的制定模块,并且更新 package.json 文件中的相关信息。

npm uninstall package-name
npm uninstall package-name --save-dev
yarn remove package-name
yarn remove package-name --dev

9 升级项目模块

基于 package.jsonyarn.lock 中的信息来升级一个特点项目模块。

npm update package-name
npm upgrade package-name # upgrade is an alias of update
yarn upgrade package-name
yarn upgrade --latest package-name

10 参考链接

Last Updated 2020-10-18 Sun 00:15. Created by Jinghui Hu at 2018-10-08 Mon 11:04.