node当中js组成
- 语法
var,let,const,if,for,function
- 内置模块(api,了解)
fs,path,http
- 第三方模块(掌握安装和使用)
moment
- 自定义模块(重点,掌握语法)
itheima-tools
模块化好处
(1)解决全局作用域污染
(2)依赖关系清晰
模块化规范
- 引入
(1.1)require(模块名称)
eg:require('fs')
(1.2)require(文件路径)
eg:require('./06m1.js')
- 导出
(2.1)整体导出(导出对象,推荐)
const uname = '张三'
module.exports = {
uname
}
(2.2)单个导出(导出变量,推荐)
const uname = '张三'
exports.uname = uname
(2.3)单个导出(导出变量,不推荐)
const uname = '张三'
module.exports.uname = uname
注意:module.exports
和exports
不要一起用
模块化作用域
当前文件里面
npm命令
(1)安装
-
npm install 包名
或者npm i 包名
(安装最新版本包) -
npm i 包名@版本号
(安装生产环境包,dependencies)
eg:npm i moment@2.22.2
注意点:版本要在npm网站version标签栏要有 -
npm i -D 包名
(安装开发环境依赖,devDependencies) -
npm i
(根据package.json
批量安装包,生产环境和开发环境) -
npm i --production
(根据package.json批量安装包,生产环境)
(2)卸载 -
npm uninstall 包名
(卸载项目包) -
npm uninstall -g 包名
(卸载全局包)
(3)其他 -
npm -h
查看有哪些命令,命令说明 -
npm -v
查看版本
eg:npm uninstall jquery
生成package.json
(1)方式1.手动创建
在code文件夹里面创建package.json
里面内容:
{}
npm i moment
安装之后内容:
{
"dependencies": {
"moment": "^2.29.1"
}
}
注意:如果是中文目录,或者有空格的目录就使用方式1
(2)方式2.通过命令npm init -y
npm i moment
版本号
大版本.功能号.bug修复
eg:2.22.2
npm产生的文件夹和文件
-
node_modules
: 安装好的第三方模块 -
package-lock.json
: 安装好的包的信息(版本号,地址,依赖) -
package.json
: 包配置文件,方便多人开发时别人通过npm i
批量安装依赖
第一次使用第三方模块
(1)npm搜索moment
https://www.npmjs.com/ 执行npm i moment
注意:
- 安装目录在code目录,在要在code里面文件上面执行命令
- 安装好的包放到code/node_modules/moment
(2)查看文档 - 去百度搜索中文文档
moment 中文
http://momentjs.cn/docs/ (3)写代码
17.js
const moment = require('moment')
console.log(moment().format('YYYY-MM-DD HH:mm:ss'))
(4)执行代码
node 17
切换npm镜像源
(1)方式1,通过终端
百度搜索npm 淘宝
npm config set registry http://registry.npm.taobao.org/
(2)方式2.通过全局包
# 注意:(1)只需要执行一次
# (2)程序安装`C:\Users\当前用户名\AppData\Roaming\npm\nrm`
npm i -g nrm 或者 npm i nrm -g # 安装工具
nrm ls # 查看有哪些镜像
nrm use taobao # 切换到淘宝镜像
检查设置是否成功
(1)方式1,通过终端
npm get registry
(2)方式2,查看配置文件C:\Users\当前用户名\.npmrc
registry=http://registry.npm.taobao.org/
今日反馈内容
(1)能够知道Node.js中模块分成了哪三大类
(2)能够知道如何使用 npm install 命令安装需要的包
(3)能够说出package.json文件的作用
(4)能够知道如何使用npm管理项目中的包
第一次发布npm包
https://www.npmjs.com/signup
注意:验证邮箱,登录邮箱查看验证链接
(2.1)切换镜像
`nrm use npm`
(2.2)登录
`npm login`,输入用户名,密码,邮箱
注意:
- 任意一个路径都可以做登录
- 输入密码是盲打,看着键盘,一个个字母小心输入,回车结束
(3.1)查重名的包
根据`package.json`里面`name`属性
(3.2)发布包
`npm publish`
注意:
- 首先切换到包的目录
- 确保邮箱验证成功,用电脑浏览器打开邮箱
- `package.json`的`name`属性里面不能有大写字母
(4)删除包
`npm unpublish itheima-huangjinlin-tools --force`
(5)恢复npm的镜像
`nrm use taobao`
模块的加载机制
//(1.1)内置
//(1.2)第三方
// 当成文件 a -> node_modules/a.js
// 当成文件夹
// 查看package.json里面main属性 ./a->./a/b.js
// 没有main属性指定文件 a -> node_modules/a/index.js
// require('a') //报错
// (2)require(路径)
//(2.1)完整路径
// require('./a.js')
//(2.2)没有后缀名
// 把当成文件./a->./a.js
// 当成文件夹
// 查看package.json里面main属性 ./a->./a/b.js
// 没有main属性指定文件 ./a->./a/index.js
require('./a')
```