前端模块化标准
前端主要有两大模块化标准:
- CommonJS:简称 CMJ ,这是一个社区规范,出现时问较早,目前仅node环境支持;
- ES Module:简称 ESM ,这是随着 ES6 发布的官方模块化标准,目前浏览器和新版本 node 环境均支持。
CommonJS
标准类型:社区规范
支持环境: node
依赖类型:动态依赖
一.node环境
安装 nodejs 环境。
下载地址:nodejs下载:https://nodejs.org/zh-cn/
node 环境运行js文件时,全局变量为 global 。
二.CMJ规范
- 所有的js文件均是一个模块,运行的模块,入口模块;
- 所有模块中的全局变量、函数、均不会产生污染;
- 当一个模块需要提供一些东西给别的函数使用时需要把这些东西导出,导出用 module.exports ,将要导出的值或者对象赋值给 module.exports ;
- 当一个模块需要用到别的模块的东西的时候,需要导入,导入时用 require ,路径必须用相对路径;
- 模块有缓存,第一次运行模块后,导出结果会被缓存,之后再使用该模块,直接使用缓存结果。
function sum(a,b){
return a + b
}
function isOdd(a){
return a % 2 !== 0
}
// 导出
module.exports = {
sum,
isOdd
}
// 入口文件,通过node命令运行的文件
console.log("index start")
// 导入模块
const math = require("./math.js")
console.log(math.sum(1,3)) // 4