webpack是什么?
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
webpack有两种组织模块的依赖方式,同步、异步。异步依赖将作为分割点,形成一个新的块;在优化了依赖树之后,每一个异步区块都将作为一个文件被打包。
怎么用webpack?
0.安装Webpack,以管理员的身份打开命令行窗口,分别依次安装打包工具和客户端。 1.创建项目(在自定义的路径下创建一个空文件夹webpack-study),创建完毕后,在IDEA中打开。 2.创建一个名为modules的目录,用于放置JS模块等资源文件 3.在modules下创建模块文件,如hello.js,用于编写JS模块相关代码 4.在modules下创建一个名为main.js的主入口文件,用于打包时设置entry属性 5.在项目目录下创建webpack.config.js配置文件,使用webpack命令打包(以管理员身份输入) 6.运行HTMl的效果
webpack的原理
webpack打包原理是根据文件间的依赖关系对其进行静态分析,然后将这些模块按指定规则生成静态资源,当 webpack 处理程序时,它会递归地构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
webpack的核心机制(loader、plugins): Loader工作原理:
loader是用来加载处理各种形式的资源的机制,本质上是一个函数, 接受文件作为参数,返回转化后的结构。
loader是运行在NodeJS中的。因为webpack不认识一些外来模块,所以要使用一些加载器,比如识别css/react/vue/png等。
loader虽然是扩展了 webpack ,但是它只专注于转化文件(transform)这一个领域,完成压缩,打包,语言翻译。