如何使用包管理工具 Npm?

你好同学,我是沐爸,欢迎点赞、收藏和关注!个人知乎、公众号"沐爸空间"

介绍

npm(Node Package Manager) 是 node.js 官方内置的包管理工具,可以对包进行安装、更新、下载、上传、删除等操作。常用的包管理工具还有Yarn、Cnpm。

【包】英文单词 package,代表了一组特定功能的源码集合。

安装过 node ,即可通过 node -v 查看 npm 的版本。

npm 初始化包

npm init

注意:

  • package name(包名)不能使用中文、大写,默认值是文件夹的名称,所以文件夹名称也不能使用中文和大写。
  • version(版本号)要求 x.x.x 的形式定义,x 必须是数字,默认值是1.0.0。
  • package.json 可以手动创建与修改。
  • 使用 npm init -y 或者 npm init --yes 可快速创建 package.json。

npm 搜索包

方式一:在 npm 官网 npm | Home 中搜索(推荐方式)。

方式二:使用 npm search 命令搜索,如 "npm search express"。

npm 安装包

# 局部安装
npm install [packageName]

# 全局安装
npm install [packageName] -g

# 安装最新版本
npm install [packageName]@latest

# 安装指定版本
npm install [packageName]@1.1.1

# 安装指定区间的版本
npm install [packageName]@">=1.1.1 <2.0.0"

npm 开发依赖和生产依赖

只在开发阶段需要的依赖属于开发依赖,在开发阶段和生产阶段都需要的依赖属于生产依赖。install 命令可以通过参数区分两种依赖的类型。npm install [packageName] 默认安装的是生产依赖。

  • --save:生产依赖,模块名将被添加到 dependencies 属性中,可以简写为 -S。
  • --save-dev: 开发依赖,模块名将被添加到 devDependencies 属性中,可以简写为 -D。
npm install vue --save
npm install less --save-dev

# 或者
npm install vue -S
npm install less -D

以蛋炒饭为例,需要大米、油、葱、鸡蛋、锅、煤气、铲子等。其中锅、煤气和铲子属于开发依赖,只在制作阶段使用。而大米、油、葱、鸡蛋属于生产依赖,在制作和食用时都会用到。

安装时不确定是生产依赖或开发依赖的话,也可以参考 npm 包的 readme.md 文件。

npm 全局安装

全局安装命令

我们可以执行安装选项 -g 进行全局安装。在任意位置打开命令行,都可进行全局安装。

npm install nodemon -g

全局安装完成之后就可以在命令行的任何位置运行 nodemon 命令。nodemon 命令的作用是自动重启 node 应用程序。

查看全局安装包的存放位置:

npm root -g

将全局安装的 npm 包升级到最新版本

npm install packageName@latest -g

修改 windows 执行策略

windows 默认不允许 npm 全局命令执行脚本,所以需要修改执行策略。

1.搜索 Windows PowerShell,点击右键,以管理员身份运行。

2.输入命令 set-ExecutionPolicy remoteSigned后按 enter 键。

npm 更新包

# 将本地包升级到最新版本
npm update [packageName]

# 将全局包升级到最新版本
npm update [packageName] -g

注意:

1.将本地包升级到最新版本时,node_modules 中的依赖会更新到最新版本,但本地的 package.json 中的packageName 的版本号不会变,而 package-lock.json 会记录 packageName 最新的版本号。

2.推荐使用 npm i [packageName]@latest 代替 npm update [packageName],虽然两者功能一样,但前者会更新本地 package.json 中的版本号。

npm 卸载包

# 本地卸载包
npm uninstall [packageName]

# 全局卸载包
npm uninstall [packageName] -g

npm 查看包

1.查看全局安装包

npm list -g
C:\Program Files\nodejs -> .\
├── @vue/cli@5.0.8
├── corepack@0.28.0
├── express@4.19.2
├── nodemon@3.1.3
├── npm@10.5.2
├── nrm@1.2.6
└── pnpm@9.1.4

2.查看指定包的详情

npm show [packageName]

如执行 npm show dayjs,返回结果:

dayjs@1.11.11 | MIT | deps: none | versions: 124
2KB immutable date time library alternative to Moment.js with the same modern API 
https://day.js.org

keywords: dayjs, date, time, immutable, moment

dist
.tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.11.tgz
.shasum: dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e
.integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
.unpackedSize: 665.8 kB

maintainers:
- iamkun <kunhello@outlook.com>

dist-tags:
alpha: 2.0.0-alpha.4  latest: 1.11.11

published 2 months ago by iamkun <kunhello@outlook.com>

3.查看包的历史版本

npm view [packageName] versions

执行 npm view axios versions,返回结果:

[
  '0.1.0',         '0.2.0',        '0.2.1',         '0.2.2',
  '0.3.0',         '0.3.1',        '0.4.0',         '0.4.1',
  '0.4.2',         '0.5.0',        '0.5.1',         '0.5.2',
  '0.5.3',         '0.5.4',        '0.6.0',         '0.7.0',
  '0.8.0',         '0.8.1',        '0.9.0',         '0.9.1',
  '0.10.0',        '0.11.0',       '0.11.1',        '0.12.0',
  '0.13.0',        '0.13.1',       '0.14.0',        '0.15.0',
  '0.15.1',        '0.15.2',       '0.15.3',        '0.16.0',
  '0.16.1',        '0.16.2',       '0.17.0',        '0.17.1',
  '0.18.0',        '0.18.1',       '0.19.0-beta.1', '0.19.0',
  '0.19.1',        '0.19.2',       '0.20.0-0',      '0.20.0',
  '0.21.0',        '0.21.1',       '0.21.2',        '0.21.3',
  '0.21.4',        '0.22.0',       '0.23.0',        '0.24.0',
  '0.25.0',        '0.26.0',       '0.26.1',        '0.27.0',
  '0.27.1',        '0.27.2',       '0.28.0',        '0.28.1',
  '1.0.0-alpha.1', '1.0.0',        '1.1.0',         '1.1.1',
  '1.1.2',         '1.1.3',        '1.2.0-alpha.1', '1.2.0',
  '1.2.1',         '1.2.2',        '1.2.3',         '1.2.4',
  '1.2.5',         '1.2.6',        '1.3.0',         '1.3.1',
  '1.3.2',         '1.3.3',        '1.3.4',         '1.3.5',
  '1.3.6',         '1.4.0',        '1.5.0',         '1.5.1',
  '1.6.0',         '1.6.1',        '1.6.2',         '1.6.3',
  '1.6.4',         '1.6.5',        '1.6.6',         '1.6.7',
  '1.6.8',         '1.7.0-beta.0', '1.7.0-beta.1',  '1.7.0-beta.2',
  '1.7.0',         '1.7.1',        '1.7.2'
]

npm 安装项目依赖

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

npm i
npm install

npm 执行脚本

npm run 用于执行脚本。package.json 文件有一个 scripts 字段,可以用于指定脚本命令,供 npm 直接调用。

npm run serve
// package.json
{
  "name": "demo",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "serve": "node index.js"
  },
  "keywords": [],
  "author": "muba",
  "license": "ISC",
  "description": ""
}

// index.js
function sum (a, b) {
    return a + b
}
console.log(sum(1, 1))

管理发布包

创建与发布

我们可以将自己开发的工具包发布到 npm 服务器上,方便自己和其他开发者使用,操作步骤如下:

  1. 创建文件夹,并创建文件 index.js ,在文件中声明函数,并使用 module.exports 暴露
  2. npm 初始化工具包,package.json 填写包的信息【包名是唯一的,作者和描述必填!】
  3. 注册账号 npm | Sign Up
  4. 激活账号(一定要激活账号)
  5. 修改为官方镜像(命令行中运行nrm use npm)【需要切到 npm 官方镜像才能登录!】
  6. 命令行下 npm login 填写相关用户信息
  7. 命令行下 npm publish 提交包

注:在终端执行 npm login 登录时,如果提示要跳转到浏览器登录,可以执行 npm login --auth-type=legacy命令强制在终端登录。

更新包

后续可以对自己发布的包进行更新,操作步骤如下:

  1. 更新包中的代码
  2. 测试代码是否可用
  3. 必须修改 package.json 中的版本号!。
  4. 发布更新
npm publish

删除包

执行以下命令删除包

npm unpublish --force

npm unpublish <packageName>@<version>  // 删除包的指定版本

注意:删除包需要满足一定的条件:

  1. 你是包的作者
  2. 发布小于 24 小时
  3. 大于 24 小时后,没有被其他包所依赖,并且每周小于 300 下载量,并且只有一个维护者。
  4. 删除包可能不会立即生效,可以过段时间重试。

其他

查看帮助

# 查看帮助
npm help			// 如:npm help init
npm command -h		// 如:npm init -h

# 查看 npm 各个命令的简单用法
npm -l

npm cache默认路径

C:\Users\用户名\AppData\Local\npm-cache

清除 npm 缓存

npm cache clean --force

npm 设置环境变量

npm set 用来设置环境变量。设置完环境变量后,再执行 npm init 的时候,package.json 的作者姓名、邮件、主页、许可证字段就会自动写入预设的值。

npm set init-author-name 'Your name'
npm set init-author-email 'Your email'
npm set init-author-url 'http://yourdomain.com'
npm set init-license 'MIT'

关联文章:

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值