Webpack 前端资源加载/打包工具

发布于 2019-05-27 12:35:54 字数 2226 浏览 2032 评论 0

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

Webpack 的基本能力:处理依赖、模块化、打包

  • 依赖管理:方便引用第三方模块,让模块更容易复用、避免全局注入导致的冲突、、避免重复加载或者加载不必要的模块
  • 合并代码:把各个分散的模块集中打包成大文件,减少 HTTP 的链接的请求次数,配合 uglify.js 可以减少、优化代码的体积
  • 各种插件:babel把ES6+转化为ES5-,eslint可以检查编译时的各种错误

Webpack 的工作原理

简单的说就是分析代码,找到 “require”、“exports”、“define” 等关键词,并替换成对应模块的引用。

在一个配置文件中,指明对某些文件进行编译、压缩、组合等任务。把你的项目当成一个整体,通过一个给定的主文件 (index.js),Webpack 将从这个文件开始找到你的项目的所有的依赖文件,使用 loaders 处理他们,最后打包为一个浏览器可以识别的 js 文件。

在没有使用 Webpack 之前

举个例子:index.html里面有一大堆的css和js文件,如a.js b.js c.js等等

  • a.js要用到b.js里面的饿一个函数,则a.js要放在b.js后面
  • c.js要用到a.js里面的一个函数,则c.js要放在a.js后面
  • b.js又要用到某个js文件里面的函数,则b.js就要放在其后面

如果有N多个js文件,需要手动处理他们的关系,即容易出错。

使用 Webpack

Webpack 的理念就是一切皆模块化,把一堆的 css 文件和 js 文件放在一个总的入口文件,通过 require 引入,剩下的事情 Webpack 会处理,包括所有模块的前后依赖关系,打包、压缩、合并成一个 js 文件,公共代码抽离成一个 js 文件、某些自己指定的 js 单独打包,模块可以是 css/js/imsge/font 等等。

编写代码

src/index.js

import bar from './bar';
bar();

src/bar.js

export default function bar() {
  //
}

使用 webpack 打包

Without config or provide custom webpack.config.js

const path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
      path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  }
};

page.html

<!doctype html>
<html>
  <head>
  </head>
  <body>
    <script src="dist/bundle.js"></script>
  </body>
</html>

然后在命令行运行 webpack 就会创建 bundle.js

中文文档:https://www.wenjiangs.com/docs/webpack

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

qq_Yqvrrd

文章 0 评论 0

2503248646

文章 0 评论 0

浮生未歇

文章 0 评论 0

养猫人

文章 0 评论 0

第七度阳光i

文章 0 评论 0

新雨望断虹

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文