宜城网站开发,搜索引擎优化排名关键字广告,做百度移动网站吗,深圳市建设工程质量检测网站webpack是 前端资源模块化管理工具和打包工具#xff1b;webpack本身只能识别模块引入#xff0c;打包模块的功能#xff1b;webpack能识别ES Moudule、common JS等模块规范一、现有模块系统1、CommonJS关键词#xff1a;module.exports exports require特点#xf…webpack是 前端资源模块化管理工具和打包工具 webpack本身只能识别模块引入打包模块的功能webpack能识别ES Moudule、common JS等模块规范 一、现有模块系统 1、CommonJS 关键词module.exports exports require 特点 1node.js遵循CommonJsnpm中有近20万个可以使用的模块 2同步加载所依赖的模块资源阻塞加载不能并行加载模块 3当前浏览器暂不支持同步加载模块 使用方法 require(module);
require(../file.js);
exports.doStuff function(){}
module.exports someValue; 2、AMD Asynchronous Module Definition (异步模块定义) 主要是一个接口 define(id?,dependencies?,factory)在声明模块时指定所有依赖并且要当做形参传入到factory工厂中对于依赖的模块提前执行依赖前置 关键词define require 特点 1适合浏览器环境异步加载模块 使用方法 define(module,[dep1,dep2],function(d1,d2){return someExportedValue;
})
require([module,../file],function(module,file){}) 3、CMD Common Module Definition 与AMD相似并与CommonJs和Node.js的Modules规范保持了很大的兼容性 特点 1依赖就近延迟执行 2能在Node.js中运行 使用方法 define(function(require,exports,module){var $ require(jquery);var Spinning require(./spinning);exports.doSomething ...module.exports ...
}) 4、ES6模块 ES Moudule 关键词import export default ECMAScript6标准增加了js语言层面的模块概念。 特点 1面向未来的ECMAScript标准原生浏览器端没有兼容 2属于全新的命令字新版的Node.js才支持 /*header.js*/
function header(){var appEl document.getElementById(app);var header document.createElement(div)header.innerHTML header;appEl.appendChild(header)
}//ES Module
// export default header;
// export {header,header2}//commonJS
// module.exports header; //第一种写法
// exports.header header; //第二种写法//AMD
// define(header,function(){
// return header;
// });/*index.js*/
//ES module
// import header from ./header;
// import {header,header2} from ./header;//commonJS
// var header require(./header);//module.exports header; 对应
// var header require(./header).header; //exports.header header; 对应//AMD
// var header require(./header.js);new header(); webpack特点 1代码拆分实现前端模块按需加载分块传输避免了传统模块系统极端的加载传输方式传统模块系统极端的两个加载传输方式a、每个模块文件都单独请求造成请求次数过多导致应用启动速度慢b、把所有模块打包成一个文件然后只请求一次导致一次请求加载所有模块导致流量浪费、初始化过程慢 2通过loader转换器可以将各类资源转换为javascript模块如样式图片字体htmlless、sass、模板库多语言系统等等 3 Webpack 有一个智能解析器几乎可以处理任何第三方库无论它们的模块形式是 CommonJS、 AMD 还是普通的 JS 文件。 4 Webpack 还有一个功能丰富的插件系统。 转载于:https://www.cnblogs.com/zuozuo-blog/p/6560428.html