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.exportsexports不要一起用

模块化作用域

当前文件里面

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 -ynpm 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')
```