一。模块化标准
为什么要进行前端工程化?
因为单一文件过大开发不便,创建多个文件容易造成全局变量污染依赖混乱
模块化的标准:
1.CommonJS CMJ 社区标准 node环境
2. ES Module ESM 官方标准
CMJ规范
1.所有的js文件均是一个模块,运行的模块 入口模块
2.所有的模块中的全局变量,函数,均不会产生污染
3.当一个模块需要提供一些内容给别的模块使用时候需要导出module.exports = {}
4.当一个模块需要用到其他模块时候,需要导入require(" ../")路径必须以./或者../开头
5.模块有缓存,第一次运行之后导出结果会被缓存,之后再使用该模块,直接使用缓存结果
ES module
官方标准,支持环境,node,浏览器环境
例子:
export const a =1;具名导出
export function A(){}具名导出
export const c ()=>{} 具名导出
export default 3 默认导出。 默认导出只能有一次
导出函数必须是顶级代码,不能存在其他代码块中
引入:
import "模块路径"
import {a,b} form"模块路径"
import ("模块路径")//动态导入,返回的是一个promise,完成时候的数据为模块对象