webpack 是代码编译工具,有入口、出口、loader 和插件。(核心部分:入口和出口)
webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。
当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。
其天生就代码分割、模块化,webpack2.0中加入tree shaking,用来提取公共代码,去掉死亡代码。
模块打包机:分析项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。
根据入口文件的依赖,加载所有模块js,然后合并成一个js
标准且纯粹的模块化打包工具:依赖一个文件为入口打包所有依赖为当前浏览器可用的代码。
Webpack和另外两个并没有太多的可比性:
//暴露数据方式1
module.exports = {a, b};
//暴露数据方式2
exports.a;
exports.b;
//引用数据
var t = require("./filename");
t.a;
t.b;
//作用:export和export default实现的功能相同
//即:可用于导出(暴露)常量、函数、文件、模块等,以便其他文件调用。
//区别:
//1、export导出多个对象,export default只能导出一个对象
//2、export导出对象需要用{ },export default不需要{ }