npm
node的包管理系统
i 就是 install
`npm的使用`
1.下载包
npm i 包名 下载最新版本
npm install 包名@版本 下载指定版本
npm i 包名@latest 下载最新的测试版本
node_modules 文件夹 所有下载好的插件都会放在这个文件夹中
2.下载项目依赖
npm i 包名 --save 项目依赖下载
npm i 包名 -S 项目依赖下载
npm i 包名 项目依赖下载
3.下载开发依赖
npm i 包名 --save-dev 开发依赖下载
npm i 包名 -D 开发依赖下载
4.全局下载 会把包下载到指定的文件夹
npm i 包名 -g
5.清除缓存
npm cache verify 验证和修复npm缓存中的数据
npm cache clean --force 删除所有缓存数据
6.卸载
npm uninstall 包名 卸载包,用什么方式下载就用什么方式卸载
npm uninstall 包名 -g 删除全局安装的模块
7.更新所有包
npm update
npm i
8.查看当前这个包的版本和依赖关系(树形模块)
npm list 包名
9.查看当前包在服务器上的所有状态信息 可以看到作者的一些信息
npm view 包名
10.下载多个包时,可以在package.json中输入 包名和版本 ,然后在终端中npm i 全部安装
npm i 下载和更新
11.使用node a.js 每次都需要手动从新执行
nodemon a.js 每次修改后会自动执行
12.安装nrm用于切换镜像
npm i nrm -g
npm i yarn -g
13.liveServer类似的创建一个
npm i anywhere -g
14.自动重启node服务的程序
npm i nodemon -g nodemon
15.pm2是一个实时监控node服务的程序
npm i pm2 -g
16.执行脚本
npm run 指令
17.生成JSON配置文件 (初始化)
npm init
18.设置淘宝镜像
npm config set registry https://registry.npm.taobao.org
注意点
1.使用node a.js 运行文件不支持使用DOM、BOM和事件
2.nodejs的根元素是process
3.通过终端命令传入参数
node a.js 1 2
使用process.argv接收参数返回一个数组
第一个参数是: node的存储路径
第二个参数是: 文件的存储路径
后面的是获取到的参数
process.argv.slice(2) 获取到传过来的参数
4.调试
运行调试
console.log()
5.开启web服务
1)下载npm i anywhere -g
如何使用: anywhere
2)下载 npm i http-server -g
如何使用:http-server
`缺点`
1.无法断点续传:一个包一个包的下载,从已经有的包开始继续下载
2.无法多点下载:把文件从头开始加载,从中间位置开始加载,从三分之一处开始加载
3.下载速度慢
package.json
创建一个package.json
npm init -y 初始化
{
name就是当前项目的名字,或者是上传到npm上的包名,命名要求只能使用小写字母数字,不要使用- _ ,可以使用/ @ 名字不能
和npm官网上插件名重复,如果命名错误,本地项目没有影响,但是不能上传到NPM网站了。当前使用到的包名不能与这个名称重复
"name": "npm1",
版本 1.2.3 1就是大版本 2是小版本 3 是微版本
"version": "1.0.0",
描述 用来在npm上搜索
"description": "",
主要用来在脚本中执行主入口文件时,不带文件名,将会自动指向这个main中的文件名
"main": "index.js",
脚本 用来执行对应的node文件
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"dev":"nodemon a.js"
"dev":"nodemon" 如果脚本没有带入需要执行的文件,就会默认执行main属性对应的默认文件
"脚本名":"指令" npm run 脚本名 就可以执行指令 优先搜索node_modules文件夹的内容执行
"start":"nodemon" 不需要使用run ,npm start 就可以 start install
"xietian":"cross-env PORT=4001 nodemon a.js", cross-env 插件可以传入参数到文件 process.env.PORT
"xietian":"PORT=4001 nodemon a.js"
安卓本需要安装cross-env, 使用"cross-env PORT=4001"
},
关键词 用来在npm中搜索使用
"keywords": [],
作者
"author": "",
版权
"license": "ISC",
开发依赖
比如打包,压缩,测试等包,上线时不需要,但是项目开始时需要
"devDependencies": {
包名:版本
"webpack":"^5.91.0" ^锁定大版本 小版本和微版本会更新到最新版
"webpack":"~5.91.0" ~锁定小版本 微版本会更新最新的
"webpack":"5.91.0" 锁定版本 不会更新版本
"webpack":"*" 更新最新版本 建议大家不要使用 *
},
项目依赖 项目打包上线时必须包含这些包,否则无法运行
"dependencies": {},
}
yarn
yarn可以解决npm的缺点,比较稳定
1.使用和npm一样
yarn add 包名
yarn remove 包名
yarn --- npm i
yarn upgrade --- npm update
npx
1、避免全局安装模块
2、不安装在全局中,会被安装在临时包中,用完删除
3、如果安装在全局中,版本切换或者其他原因都会造成需要重复安装