Node包管理工具超详细

npm

npm 全称 Node package Manager ,翻译位中文意思是 【Node 的包管理工具】

npm 是 ndoe.js 官网内置的包管理工具,是 必须要掌握住的工具

1.npm的安装

node.js 在安装的时候会自动安装npm,所以如果你已经安装了node.js,就可以直接使用npm

可以通过 npm -v 查看版本号,如果显示版本说明安装成功了,反之安装失败

C:\Users\taichi>npm -v
9.5.1
  • 查看版本可能显示的版本号不一样,不过不影响正常使用.

2.初始化

创建一个空目录,然后为此目录作为工作目录 启动命令行工具, 执行 npm init

npm init命令的作用是将文件夹初始化为一个【包】, 交互式创建 package.json

package.json 内容示列:

{
  "name": "test",
  "version": "1.0.0",
  "description": "study npm",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "taichi",
  "license": "ISC",
  "dependencies": {
    "ubiq": "^1.0.1",
    "uniq": "^1.0.1"
  }
}

属性翻译:

{
  "name": "test",			// 包的名字
  "version": "1.0.0",		// 包的版本
  "description": "study npm",//包的描述
  "main": "index.js",		// 包的入口文件
  "scripts": {			   // 脚本配置
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "taichi",		// 作者
  "license": "ISC"			// 开源证书
}

初始化过程中还有一些注意事项:

  1. package name(包名) 不能使用中文、大写、默认是文件夹的名称,所以文件夹名称也不能使用中文和大写。
  2. version(版本号) 要求 x.x.x的形式定义, x 必须是数组,默认是1.0.0
  3. ISC 证书与MIT证书功能上是相同的,关于开源证书扩展阅读
  4. package.json 可以手动创建与修改
  5. 使用 npm init -y 或者 npm init --yes 极速创建 package.json

3.搜索包

搜索包的方式

  1. 命令行 npm s/search 关键字
  2. 网站搜索 网址是:www.npmjs.com

经常有同学问,【我怎样才能精准的找到我需要的包?】

这个事情需要大家在实践中不断的积累,通过看文章,看项目去学习积累

4.下载包

我们可以通过 npm installnpm i 命令来下载

# 格式
npm install <包名>
npm i <包名>

# 例子
npm install uniq
npm i uniq

运行起来后文件夹会增加两个资源

  • node_modules 文件夹 存放下载的包
  • package-lock.json 包的锁文件,用来锁定包的版本

安装uniq之后,uniq就是当前这个包的一个 依赖包,有时会简称 依赖

比如我们创建一个包名字为A,A中安装了包名字是 B,我们就说 B 是 A 的一个依赖包,也会说 A 依赖 B

5.生产环境与开发环境

  • 开发环境是程序员 专门用来写代码的环境,一般是指程序员的电脑,开发环境的项目只能程序员自己访问
  • 生产环境是项目 代码正式运行的环境,一般是正式的服务器电脑,生产环境的项目 每个用户都可以访问

6生产依赖与开发依赖

我们可以在安装时设置选项来区分 依赖类型,目前分为两种:

类型 命令 补充
生产依赖 npm i -S uniq
npm i --save uniq
-S 等效于–save, -S 是默认选项
包信息保存在package.json 中 dependencies 属性
开发依赖 npm i -D less
npm i -save-dev less
-D 等效于–save-dev
包信息保存在package.json 中 devDependencies 属性

7.全局安装

我们可以执行安装选项 -g进行全局安装

npm -i -g nodemon

全局安装完成之后就可以在命令行的任何位置运行 nodemon 命令

该命令的作用是自动重启node应用程序

说明:

  • 全局安装的命令不受工作目录位置的影响
  • 可以通过 npm root -g 来查看全局安装包的位置
  • 不是所有的包都适合全局安装,只有全局类的工具才适合, 可以通过官方的文档来确定安装方式.

注意:全局安装完成之后可能不能用,请点击此文章。

8.安装包依赖

在项目协作的中有一个常用的命令就是 npm i,通过该命令可以依据 package.jsonpackage-lock.json 的依赖声明安装项目依赖

npm i
npm install

node_modules 文件夹大多数情况下都不会存入版本库

  • 在以后的克隆项目中,是没有 node_modules 包的,都在 package.json 中记录。
  • 拿到克隆项目后,可以直接使用 npm i 下载依赖

9.安装指定版本

项目中可能会遇到版本不匹配的情况,有时候需要安装指定版本的包,可以使用下面的命令

## 格式
npm i <包名@版本号>
## 例如
npm i [email protected]

10.删除依赖

项目中可能需要删除某些不需要的包,可以通过下面的命令

## 局部删除
npm remove uniq
npm r uniq
## 全局删除
npm remove -g nodemon

11.npm 配置别名

通过配置命令别名可以更简单的执行命令

配置 package.json 中的 script 属性

{
.
.
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "server": "ndoe ./index.js",
    "start": "node index.js",
  },
.
.
}

配置完成之后,可以使用别名执行命令

npm run server
npm run start

不过 start 别名比较特别, 使用时可以省却 run

npm start

补充说明:

  • npm start 是项目中常用的一个命令,一般用来启动项目
  • npm run 是自动向上级目录查找的特性, 跟 require 函数也一样
  • 对于陌生的项目, 我们可以通过查看 scripts 属性来参考项目的一些操作

cnpm

1.介绍

cnpm 是淘宝构建的 npmjs.com 的完整镜像,也称位 淘宝镜像,网址

cnpm 服务部署在国内 阿里云服务器上 ,可以提高包的下载速度

官方也提供了提个全局工具包 cnpm ,操作命令与npm 大体相同

2.安装

我们可以通过 npm 来安装 cnpm 工具

npm install -g cnpm --registry=https://registry.npmmirror.com

3.操作命令

功能 命令
初始化 cnpm init
安装包 cnpm i uniq
cnpm i -S uniq
cnpm i -D uniq
cnpm i -g nodemon
安装项目依赖 cnpm i
删除 cnpm r uniq

4.npm 配置镜像

用 npm 也可以直接使用淘宝镜像,配置的方式有两种

  • 直接配置
  • 工具配置
直接配置

执行如下命令即可完成配置

npm config set reqistry https://registry.npmmirror.com
工具配置

使用 nrm 配置 npm 的镜像地址 npm registry manager

  1. 安装

    npm i -g nrm
    
  2. 修改镜像

    nrm use taobao
    
  3. 检查是否配置成功(选做)

    npm config list
    

    检查registry 地址是否为 https://registry.npmmirror.com 如果是则表示成功.

补充说明:

  1. 建议使用第二种方式 进行镜像配置,因为后续修改起来比较方便
  2. 虽然 cnpm 可以提高速度,但是 npm 也可以通过淘宝镜像进行加速,所以 npm的使用率还是高于 cnpm

yarn

1.yarn介绍

yarn 是由 Facebook 在2016年推出的新的 JavaScript 包管理工具,官方网站:http://yarnpkg.com

2.yarn特点

yarn官方宣称的一些特点

  • 速度超快:yarn 缓存了每个下载过的包,所以再去使用时无需重复下载。同时利用并下载以最大化资源利用率,因此安装速速更快
  • 超级安全:在执行代码之前,yarn 会通过算法校验每个安装包的完整性
  • 超级可靠:使用详细、简介的锁文件格式和说明的安装算法,yarn 能够保证在不同的系统上无差异的工作

3.yarn安装

我们可以使用 npm 安装 yarn

npm i -g yarn

4.yarn 常用命令

功能 命令
初始化 yarn init / yarn init -y
安装包 yarn add uniq 生产依赖
yarn add less --dev 开发依赖
yarn global add nodemon 全局安装
删除包 yarn remove uniq 删除项目依赖包
yarn global remove nodemon 全局删除包
运行命令别名 yarn <别名> 不需要添加 run
安装依赖包 yarn 自动下载package.json中的依赖

全局安装的包不可使用,yarn 全局安装包的位置 可以通过 yarn global bin 来查看

注意:默认情况下 yarn 下载的全局包是没有添加环境变量,需要手动添加

5.yarn 配置淘宝镜像

可以通过如下命令配置淘宝镜像

yarn config set reqistry https://registry.npmmirror.com

可以通过 yarn config list 查看 yarn 的配置选项

6.npm 和 yarn 选择

大家可以根据不同是使用场景进行选择

  1. 个人项目

    如果是个人,哪个工具都可以,可以根据自己的喜好来选择

  2. 公司项目

    如果是公司要根据项目代码来选择,可以通过锁文件来判断项目的包管理工具

    • npm 的锁文件为:package-lock.json
    • yarn 的锁文件为: yarn.lock

包管理工具 不要混着用,切记,切记,切记

扩展内容

很多语言中都有包管理工具,比如:

语言 包管理工具
PHP composer
Python pip
Java maven
GO go mod
JavaScript npm/yarn/cnpm/other
Ruby rubyGems

除了编程语言领域有包管理工具之外,操作系统层面也存在包管理工具,不过这个包指的是 软件包

操作系统 包管理 网址
Centos yum https://packages.debian.org/stable/
Ubuntu apt https://packages.ubuntu.com/
MacOS homebrew https://brew.sh/
Windows chocolatry https://shocolatey.org/

你可能感兴趣的:(html,js,node,arcgis,node.js,npm)