目录

网站 node 包管理器 npm

NPM 的简介

npm(Node Package Manager)是 node 的包管理器,随同 NodeJS 一起安装的包管理和分发工具,它很方便让 JavaScript 开发者下载、安装、上传以及管理已经安装的包,无论是前端还是后端开发都会使用到 npm 包管理器。(前端框架开发 react、Vue…,后台 node 开发)。历史原由:做一个网站依赖的代码越来越多,需要去很多网站下载相关分享代码,每次都要手工下载是不现实的,而且如果有个网站关闭了怎么办?于是出现了一个解决方案:用一个工具集中及管理这些代码(资源镜像站),这就是npm之 node 包管理器。
npm 的实现思路可以这么理解:
1、买个服务器做仓库(资源镜像);
2、让 jQuery、Bootstrap、Underscore…等将代码提交到服务器上;
3、如果有人想用这些库,只需运行命令(如:npm install jQuery)下载到本地,库的代码就会被下载到当前 ./node_modules 目录中。

Ubuntu 平台

1、npm 的安装

● npm 的 linux 版本无需要安装,直接下载解压就可以使用,进入【下载页面】选择 Linux Binaries (x64) 版本下载。更多下载网址:
全部版本下载页面
英文最新下载页面
中文最新下载页面
网文:Linux 系统下 Nodejs 安装与卸载

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
####安装方法####
wget https://nodejs.org/dist/latest-v10.x/node-v10.24.1-linux-x64.tar.xz #在命令窗口直接下载  
tar -xf node-v10.24.1-linux-x64.tar.xz           #解压到当前目录  
sudo mv node-v10.24.1-linux-x64 /usr/local/node  #移动文件夹并重命名为[node](如果要安装多个版本,文件夹名称改为另一个名,例如:[node-v17.9.0-linux-x64])  
# sudo gedit /etc/profile                        #(因在系统目录下创建了软链接,此步可不用设置)编辑系统环境变量,在文件最后加入两行内容:export PATH=$PATH:/usr/local/node/bin  
# source /etc/profile                            #(因在系统目录下创建了软链接,此步可不用设置)使能系统环境变量。            export PATH=$PATH:/usr/local/node/lib/node_modules/npm/bin  
cd /usr/bin                                      #切换到软链接目录下  
sudo ln -s /usr/local/node/bin/node node         #添加执行软链接(如果要安装多个版本,则要改名,例如:sudo ln -s /usr/local/node-v17.9.0-linux-x64/bin/node node-17.9.0)  
sudo ln -s /usr/local/node/bin/npm  npm          #添加执行软链接(如果要安装多个版本,则要改名,例如:sudo ln -s /usr/local/node-v17.9.0-linux-x64/bin/npm  npm-17.9.0)  
node -v                                          #查看版本,验证安装是否成功(v10.24.1)  
npm  -v                                          #查看版本,验证安装是否成功(6.14.12)  

####卸载方法####
sudo rm -rf /usr/local/node                      #直接删除整个目录即可(注意小心操作)  

● 由于不同的软件需要使用不同的 npm 版本,过新或过旧都有可能不支持(例如:使用gitbook制作电子书就是因为不支持新版本,运行命令时提示各种错误),所以建议根据实际安装多个版本的 node(npm)来解决!多个版本共存的处理方法如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
####安装方法####
#(1)                                             #安装另一版本同上面介绍一样,只是[node]和[npm]名称不一样,
                                                 #例如:1)文件夹名称为[node-v17.9.0-linux-x64],2)软链接名称为[node-17.9.0]和[npm-17.9.0]【具体请看(2)】
#(2)                                             #需要修改前面安装的[node-v10.24.1-linux-x64] 软链接名称:
cd /usr/bin                                      #切换软链接目录下
sudo ln -s /usr/local/node/bin/node node-10.24.1 #添加执行软链接(★因默认快捷方式改了名,必须按下面的【共存处理】进行操作)
sudo ln -s /usr/local/node/bin/npm  npm-10.24.1  #添加执行软链接(★因默认快捷方式改了名,必须按下面的【共存处理】进行操作)

####共存处理###
sudo update-alternatives --install /usr/bin/node node /usr/bin/node-17.9.0  1709 --slave /usr/bin/npm npm /usr/bin/npm-17.9.0
sudo update-alternatives --install /usr/bin/node node /usr/bin/node-10.24.1 1024 --slave /usr/bin/npm npm /usr/bin/npm-10.24.1
                                                 #备注:上面的 --slave 的 npm 表示的默认版本由 node 配置决定。
                                                 #移除:从优先级列表中移除例子
                                                 #sudo update-alternatives --remove node /usr/bin/node-17.9.0
####选择版本###
sudo update-alternatives --config node           #配置默认版本,根据界面提示输入对应数字+回车选择
2、npm 的命令

我们常用的npm命令主要是做四种操作:初始化、安装、删除、配置。
网文:npm 常用命令汇总

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
npm -v                  #查看npm的版本  
npm init                #初始化一个NPM项目,生成package.json文件,里面有各种依赖包的信息  
npm install             #一键安装:安装package.json里的所有依赖文件到当前./node_modules/ 目录下  
npm install XXXX        #本地安装:安装包到当前./node_modules/ 目录下,需要通过require()调用(注:XXXX为具体包名)  
npm install XXXX -g     #全局安装:安装包到系统 /usr/local/ 目录下(或npm默认安装目录)可以通过命令行在任何地方调用它  
npm install XXXX@3.9.1  #安装指定版本的包  
npm install XXXX@latest #安装最新版本的包  
npm uninstall XXXX      #卸载安装的包(或 npm remove)  
npm info XXXX           #查看包的详细信息  
npm search XXXX         #查找npm仓库  
npm config get registry #查看下载仓库镜像网址  
npm list                #查看当前项目安装的所有模块  
npm list -g             #查看全局的所有模块  
  
#####[命令/选项]简写#####  
# install   -> i  
# -global   -> -g  
# -save     -> -S(大写)  
# -save-dev -> -D(大写)  

几个选项补充说明
npm install XXXX命令
1. 安装模块到项目 node_modules 目录下。
2. 不会将模块依赖写入 devDependencies 或 dependencies 节点。
3. 运行 npm install 初始化项目时不会下载模块。
npm install -g XXXX命令
1. 安装模块到全局,不会在项目 node_modules 目录中保存模块包。
2. 不会将模块依赖写入 devDependencies 或 dependencies 节点。
3. 运行 npm install 初始化项目时不会下载模块。
npm install -save XXXX命令
1. 安装模块到项目 node_modules 目录下。
2. 会将模块依赖写入 dependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行 npm install –production 或者注明 NODE_ENV 变量值为 production 时,【会】自动下载模块到 node_modules 目录中。
5. 主要用于生产环境下,因为生产环境无须安装一些调试或工具模块。
npm install -save-dev XXXX命令
1. 安装模块到项目 node_modules 目录下。
2. 会将模块依赖写入devDependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行 npm install –production 或者注明 NODE_ENV 变量值为 production 时,【不会】自动下载模块到 node_modules 目录中。
5. 主要用于开发环境下,因为开发环境往往安装一些调试或工具模块。
3、cnpm 之替代

因为 npm 安装插件是从国外服务器下载,受网络影响大,可能出现异常,所以我们乐于分享的淘宝团队做了一个完整 npmjs.org 镜像(中国 NPM 镜像),你可以用它来代替官方版本(只读),其同步频率目前为每 10 分钟一次以保证尽量与官方服务同步。cnpmnpm用法是一致,只是在执行命令时将npm改为cnpm即可,但必须要清楚一点:cnpmnpm命令执行有差异。例如:先执行了cnpm install lodash,然后再执行npm uninstall lodash,此时会报错。补充说明:尽管使用 npm 改成淘宝仓库,但当模块比较多的时候,发现安装速度还是远远比 cnpm 慢。个人建议:从通用角度来看,还是建议使用 npm,并把下载仓库路径改为淘宝镜像以提高下载速度。
网文:npm更换成淘宝镜像源以及cnpm

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
###特别说明####                     ##原淘宝【npm】域名即将于【2022.06.30】停止解析,请切换至新域名
# https://npm.taobao.org          --切换为--> https://npmmirror.com
# https://registry.npm.taobao.org --切换为--> https://registry.npmmirror.com

###cnpm替代####
# npm config get registry #查看下载仓库镜像网址
# npm config set registry https://registry.npmmirror.com      #修改下载仓库为淘宝镜像(注意:淘宝镜像只读不能写!)  
# npm config set registry https://registry.npmjs.org          #修改下载仓库为官方镜像(当要发布自己的镜像时需要修改回来)  
npm install -g cnpm --registry=https://registry.npmmirror.com #安装cnpm(注释:--registry=表示临时使用另一个网站资源镜像)  
sudo gedit /etc/profile #编辑系统环境变量,在文件最后加入内容:export PATH=$PATH:/usr/local/node/lib/node_modules/cnpm/bin  
source /etc/profile     #使能系统环境变量。  
cnpm -v                 #查看版本。(注意:安装完后最好先使用命令`cnpm -v`查看其版本号或关闭并  
                        #         重新打开命令窗口,否则安装完直接使用有可能会出现错误)