npm -v
,如果看到版本号,说明已经安装成功npm是管理(下载、卸载、发布)第三方模块的工具
npmjs.com
这个网站 npm的作用是:管理node模块的工具
npm就是一个管理(下载安装、卸载…)第三方模块的工具
安装本地模块,使用npm工具初始化
npm init -y
# 或
npm init
# 然后一路回车
初始化之后,会在项目目录中生成 package.json 的文件
注意事项:
初始化之后,就可以在当前文件夹安装第三方模块了
建议在安装第三方模块之前,先执行如下命令...
下面的命令只需要执行一次即可(不管以后重启VsCode还是重启电脑,都不需要执行第二次)
npm config set registry https://registry.npm.taobao.org
下载安装第三方模块
# 正常的下载安装
npm install 模块名
# 简写 install 为 i
npm i 模块名
# 一次性安装多个模块
npm i 模块名 模块名 模块名
# 下载开发依赖
npm install -D 模块名
# 或
npm install --save-d 模块名
# 下载全局 - 下载全局性质的包,比如vue-cli(创建Vue项目的脚手架工具),nrm(切换下载源)
npm install -g 包名
# 查看全局下载的包
npm ls -g --depth 0
# 根据package.json 文件 dependencies和devDependencies字段自动下载对应的包
# 在接触一个新项目的时候,都需要使用这个安装依赖
npm install
# !!!所有的 install 都可以替换为 i 简写!!!
卸载模块
# 删除指定的第三方包
npm uninstall 模块名
# 简化写法
npm un 模块名
# 删除多个包
npm un 模块名 模块名 模块名...
# 删除全局包
npm un -g 模块名
上课演示的是 jquery、mysql、moment、cors、express、echarts
// 1.任何包第一步都需要引入,require是直接写包名
const pkg = require('包名');
// 2.参考文档使用包
// 2.1 去官方找,比较优秀的包都是有官网的,vue,react,angular,lodash
// 2.2 npm.js.com 搜索包,包主页会有文档
// 2.3 百度搜索
# nrm 是用来切换下载镜像源的
# 查看所有源地址
nrm ls
# 切换源
nrm use 源名称
在初始化之后,会生成一个package.json的文件
创建 package.json
npm init
npm init -y
main
main字段指定了模块的入口文件
dependencies 依赖 ( 复数 )
npm install
可以安装所有的依赖npm install 模块
安装模块时,会将该模块记录到 dependencies 中,表示这是项目必须的模块npm install 模块 -D
安装模块时,会将该模块记录到 devDependencies 中,它表示项目不需要这个模块,但是开发阶段需要这个模块scripts
scripts
指定了运行脚本命令的 npm 命令行缩写,比如start指定了运行npm run start
时,所要执行的命令。
npm run a
,相当于执行了 git initnpm start
即可,相当于执行了 node app.js"script" :{
"a" : "git init",
"start" : "node app.js",
"t" : "dir c:\\"
}
运行 scripts
npm run t
npm run start
# 只有start 可以简化使用
npm start
判断缓存中有没有,如果有,使用缓存中的内容
缓存中没有,那么表示第一次加载,加载完会缓存
判断模块名有没有带路径(./)
模块名中有路径,加载自定义模块(自己写的文件)const xx = require('./xx')
模块名没有路径,优先加载核心模块,如果没有核心模块,则加载第三方模块
加载第三方模块的查找方式
- sy123
- package.json (package.json包的配置文件)
- index.js (入口文件)
- README.md (说明文档)
name 项目名,不能有中文
version 项目版本号,里面只能是 数字.数字
main 项目的入口文件,指的是哪一个文件,默认是index.js,如果不是,需要使用main指定
scripts 声明简化命令:
{
"简化命令":"真实命令(命令行能用的名)",
"start":"node ./index.js"
}
// 执行简化命令,在命令行中输入 npm run 简化命令
// start特殊,start可以 npm run start 也可以 npm start
dependencies 项目运行依赖(第三方包的信息,这里包含的包只要没有了,项目就无法运行)
devDependencies 开发依赖(开发中会用到,在项目运行时不会用,less,sass…)
JSON文件不能有注释
{
"name": "sy123", // 包(模块)的名字,和文件夹同名。别人加载我们的包,找的就是这个文件夹
"version": "1.0.0",
"description": "This is a package by Laotang",
"main": "index.js", // 别人加载我们的模块用,require加载的就是这里指定的文件
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [ // 在npm网站中,通过关键字可以搜索到我们的模块,按情况设置
"laotang",
"itcast",
"test"
],
"author": "Laotang", // 作者
"license": "ISC" // 开源协议
}
// 别人加载的就是我的 index.js
// 所以,必须在 index.js 中导出内容
function a() {
console.log('aaa')
}
function b() {
console.log('bbb')
}
module.exports = { a, b } // 导出内容
# 切换npm源
nrm use npm
# 登录npm
npm login
# 按照提示输入用户名、密码(按下键盘的时候不会有任何的显示,一直输入即可)、邮箱、OTP
# 发布
npm publish
# 在package.json中version,升级版本号
# 如果推送不上去,使用 npm login 重新登录一下
npm publish
npm unpublish 包名 --force
# 删除包之后,24小时内不能再发布
运行 nrm ls
或者 nrm use taobao
等命令,如果报错如下:
“无法加载文件 C:…,因为在此系统上禁止运行脚本。…”
解决办法是:
管理员
方式,打开命令行(powershell)窗口set-ExecutionPolicy RemoteSigned;
A
,回车。即可。如果报错如下
“无法将 nrm 识别为 cmdlet、函数、脚本文件或可运行程序的名称。xxxxxxxxxxx”
解决办法,重启vscode,win7可能要重启电脑。