什么是模块化?
一个js文件可以引入其他的js文件,能使用引入的js文件中的变量、数据 这种特性就称为模块化。 使用模块化开发可以很好的解决变量、函数名冲突问题,也能灵活的解决文件依赖问题。
模块化的发展 以前es5不支持模块化,前端程序员非常苦逼。为了能够支持模块化,一般会借助第三方库来实现。
常用的第三方库有
sea.js. www.zhangxinxu.com/sp/seajs/
require.js. <requirejs.org
现在: es6原生语法支持模块化 (需单独设置一下) Node.js内部也支持模块化(与es6的模块化有不同之处)
nodejs中的模块分类 1.核心模块-(nodejs自带) 2. 自定义模块(自己定义的) 3. 第三方模块
开发依赖包与生产依赖包
操作
这两种依赖关系,在具体操作的过程中,有如下区别
- 保存到开发依赖(devDependencies)
npm install 包名 --save-dev
// 或者 npm install 包名 -D
通过这种方式安装的包出会现在package.json文件中的devDependencies字段中。
- 保存到生产依赖(dependencies):
npm install 包名
// 或者 npm install 包名 -S
// 或者 npm install 包名 --save
通过这种方式安装的包出会现在package.json文件中的dependencies字段中。
导出模块的两种方式
1.exports 和 module.exports 两个对象的关系/
初始exports和module.exports是指向同一块内容区域,其内容都是一个空对象。(exports是module.exports的别名)即:exports === module.exports // 输出是 true
const myPI = 3.14
const add = (a,b) => a + b;
// 导出,两种方法任意都可以
// 方法一:
exports.myPI = myPI
exports.add = add
// 方法二:
module.exports.myPI = myPI
module.exports.add = add
// 方法二(变形)
module.exports = {
myPI,
add
}
在定义模块时:建议只是用一种方式(直接使用module.exports)
了解npm和包
npm 全称 Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题。
npm 不需要单独安装。在安装Node的时候,会连带自动安装npm。
npm -v检查安装的情况。
官网(www.npmjs.com/)
npm网站上去下载我们的需要的代码时,它们是以"包"这种结构放在npm网站上的。先来了解下包和模块的关系。
- nodejs中一个模块就是一个单独的js文件
- Node.js 中的第三方模块,又叫做包、第三方包、依赖包
- 包是多个模块的集合。一个模块的功能比较单一,所以一个包一般会包含多个模块。
- npm 管理的单位是包。类似于网站和网页的区别:一个网站一般会包含多个网页。
npm包创建与发布
1.npm view 包名 // 这个命令用来查看 某个包的信息 如果返回404,说明这个项目名在npm官网上找不到,此时你就可以使用。 否则,说明不可用。
-
2.npm init -- yes // 用来创建一个package.json文件,对你的项目信息进行设置
-
3.完成功能开发
-
4.如果用到镜像,需要我们把他切换到npm官网 通过nrm use npm 切换 npm config get registry 查看当前的npm的registry配置,确保是registry.npmjs.org 如果不是,可以通过如下命令来设置 npm config set registry registry.npmjs.org 手动设置registry
-
5.连接npm 命令npm adduser
-
6.检查是否连接成功 npm who am i
-
7.把包上传到 npm publish
-
8.如果包没有什么用处,建议删除,节约公共资源 npm unpublish --force // 强制删除
npm常用命令
查看
- npm -v // 查看npm 版本
- where node // 查看node的安装目录
- where npm // 查看npm的安装目录
- npm root -g // 查看全局包的安装目录
- npm list -g --depth 0 // 查看全局安装过的包
升级npm
- npm install npm --global // 简写成 -g
- npm install npm -g
初始化package.json
- npm init -y // 或者是npm init --yes
安装第三方包 // 安装当前目录下package.json中列出的所有的包 // 如果之前安装了包,又在package.json中手动删除依赖 // 它相当是删除包
- npm install
// 全局安装
- npm install 包名 -g // npm install -g 包名
// 本地安装,没有指定版本,默认安装最新的版本
- npm install 包名
// 一次安装多个包,空格隔开
- npm install 包名1 包名2 包名3
// 安装指定版本的包
- npm install 包名@版本号
// 简写。把install简写成 i
- npm i 包名
删除已安装的包
- npm uninstall 本地安装的包名
- npm uninstall 全局安装的包名 -g
设置npm的register\
如果你不想用 nrm ,下面这个原生的命令也可以切换镜像源(从哪里下载包)。
npm config set registry=https://registry.npm.taobao.org
所有npm i 包 都会从taobao的镜像去下载。 配置后可通过下面方式来验证是否成功 npm config get registry