【笔记】npm学习笔记

前言

npm(全称 Node Package Manager,即“node包管理器”)是Node.js默认的、用JavaScript编写的软件包管理系统。(维基百科

安装npm

MacOS

  • 安装Nodejs默认会预装npm
1
brew install node

Linux

Debian

1
apt install npm

项目配置文件

  • 通过修改项目的package.json配置文件来管理依赖
package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"name": "", // 项目名
"version": "1.0.0", // 项目版本号
"main": "index.js", // 项目入口文件
"scripts": {}, // 项目脚本
"author": "", // 作者
"license": "ISC", // 许可
"description": "", // 项目描述
"private": true, // 是否私有,如果是私有不会被发布到npm仓库
"dependencies": {}, // 运行时依赖及开发依赖
"devDependencies": {}, // 开发依赖
"peerDependencies": {} // 对等依赖,将当前包作为依赖时,必须以另一个宿主包为前提
}

从npm仓库引入依赖

X.Y.Z:SemVer规范的版本号

^:X保持不变,Y和Z保持最新
~:X和Y保持不变,Z保持最新

package.json
1
2
3
4
5
{
"dependencies": {
"demo": "^1.0.0"
}
}

从Github仓库引入依赖

package.json
1
2
3
4
5
{
"dependencies": {
"demo": "git+ssh://git@github.com:username/demo.git"
}
}

从本地引入依赖

  • 将依赖目录放到项目根目录的lib目录下
package.json
1
2
3
4
5
{
"dependencies": {
"demo": "file:lib/demo"
}
}

管理项目依赖

查看帮助

1
npm -h
1
npm --help

初始化项目

-y:全部确认

1
npm init
1
2
3
4
5
6
7
8
9
package name: # npm包名
version: # 版本号,默认1.0.0
descripthon: # 描述
entry point: # 入口文件,默认index.js
test command: # 测试命令
git repository: # Git仓库地址
keywords: # 搜索关键字
author: # 作者
license: # 开源许可协议,默认ISC

安装当前项目所有依赖

1
npm i
1
npm install

添加或更新指定依赖

<package>:软件包名
--location=global--global-g:全局操作
--local:缺省值,当前项目操作
--save:旧版本npm安装依赖时不会将所安装的依赖添加到配置文件,需要通过--save将所安装的依赖添加到配置文件,高版本npm不需要指定--save即可在安装依赖时自动将所依赖添加到配置文件
--save-dev-D:添加开发依赖
-legacy-peer-deps:强制安装

1
npm i <package>
1
npm install <package>

升级自身

1
npm i -g npm
1
npm install -g npm

添加指定版本的模块

1
npm i <package>@<version>
1
npm install <package>@<version>

添加多个模块

1
npm i <package_1> <package_2>
1
npm install <package_1> <package_2>

删除依赖

删除运行时依赖

1
npm uninstall <package>
1
npm uninstall <package> --save

删除开发依赖

1
npm uninstall <package> --save-dev

更新依赖

更新指定依赖

-g:全局操作

1
npm update <package>

查看已安装依赖

1
npm ls
1
npm list

查看指定已安装依赖

1
npm list <package>

查找依赖

1
npm search <package>

查看配置

1
npm config list

强制重新编译依赖

1
npm rebuild

缓存

查看缓存路径

1
npm config get cache

清除缓存

1
npm cache clear

全局依赖安装路径

全局依赖默认安装路径

Windows

  • %AppData%\npm\node_modules

MacOS

  • 通过官网pkg安装的Nodejs:/usr/local/lib/node_modules
  • 通过Homebrew安装的Nodejs:/opt/homebrew/lib/node_modules

查看全局依赖安装路径

1
npm config get prefix

修改全局依赖安装路径

1
2
3
4
cd <dir>
mkdir npm

npm config set prefix <dir>/npm

项目脚本

配置脚本

<script_name>:脚本名
<shell>:脚本执行的shell命令,在配置文件中定义脚本时可以省略npx,默认从当前项目寻找二进制包

package.json
1
2
3
4
5
{
"script": {
"<script_name>": "<shell>"
}
}

执行脚本

<script_name>:脚本名

1
npm run <script_name>

内置脚本

  • 内置脚本可以省略run关键字
1
npm start
1
npm stop
1
npm restart
1
npm test

项目发布

注册

登录

1
npm login
1
2
3
Username:
Password:
Email:
  • 登录成功后,如果不是官方镜像源,可以修改镜像源

传送门

发布

1
npm publish

完成

参考文献

菜鸟笔记
CSDN——idomyway
哔哩哔哩——黑马程序员
哔哩哔哩——许泽鸿
npm官方文档
简书——fengxianqi
哔哩哔哩——Python小清风