Webpack4 不完全入坑指北(一)

作者: 虾游于海 | 来源:发表于2018-06-17 00:04 被阅读86次

写在前面
距离Webpack4发布已经有一段时间了,喜欢尝新的小伙伴应该已经用上它了。在使用的过程中,或多或少都会踩到一些坑,以下作为一个入坑webpack的使用笔记,对使用webpack4的同学多少有些帮助。

什么是webpack?什么使用webpack?

一项技术的产生,必定有其特殊的原因。一项技术的流行,毕竟是因为有它的市场。
我们打开webpack官方网站。首先看到的是一幅图

image.png

以及它动态滚动的条幅

  • bundle your assets
  • bundle your script
  • bundle your images
  • bundle your styles

引用官网的一句话:
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。
而模块究竟是什么呢?webpack解释中文版不再复制了。
我这里用一句通俗的话来解释模块,模块就是文件。一个文件就是一个模块,无论什么样子的文件,在webpack看来都是模块,所谓的模块打包器就是文件打包器。
为什么使用webpack呢?最初的原因可能是为了将各个小的js文件打包成一个js文件,以提高网络利用率。但随着技术的发展,开发者对自动化构建提出了更高的需求,比如要转码了,要兼容不同的模块类型(ES Module,node modules,amd modules等),这些需求促进了webpack整个生态的发展。webpack基本已经成为了现代化js项目的首选构建工具。

hello webpack

我们在学习一门新的编程语言的时候,通常是从hello word开始的。我们就从一个简单demo开始。
现在我有一个工具类库,为了方便开发,分散在多个文件之中。使用ES Module编写
他们分别是
projectRoot
  |--src
      |--modules
          |--body.js
          |--toUper.js
  |--index.js

// src/modules/body.js
export default function () {
  document.title = 'hello webpack '
  document.body.innerHTML = '<div>good good study ,day day up!</div>'
}
// src/modules/toUpper.js
export default function (str) {
  return str.toUpperCase()
}

然后使用一个统一的 src/index.js文件引入它们

import writeBody from './modules/body'
import toUpper from './modules/toUpper'
export {
  writeBody,
  toUpper
}

现在我们要使用webpack将它们打包成一个文件。
为了实现打包功能,我们需要

安装webpack

我们可以通过npm安装webpack(如不熟悉,需补充npm相关知识)
使用命令

npm i -g webpack webpack-cli

即可将webpack工具安装到本机

初试打包

打开终端命令提示符,将我们将的工作目录转到projectRoot下,执行webpack

projectRoot> webpack

稍等片刻,即可在projectRoot下看到一个dist目录。下面就有我们打包的main.js。
但这个js文件还不能简单的被浏览器正确的使用。我们还需要进行一些简单的配置。
在projectRoot下建立一个webpack.config.js并输入如下内容

module.exports = {
  output: {
    library: 'tool',
    libraryTarget: 'umd'
  }
}

再执行webpack命令,会重新生成一个main.js,这是一个标准的umd模块,可以被浏览器正确的加载了。

测试生成的文件

我们在projectRoot下建立一个index.html文件,引入打包好的文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script src="dist/main.js"></script>
<script>
  // umd模块在直接引用的时候,会将模块对象绑定到window上
  // 调用模块中的方法
  tool.writeBody()
</script>
</body>
</html>

即可看到相应方法的执行效果。
本文只是一个webpack的入门hello world,后面会陆续介绍在项目中运用webpack需要了解的更多技能。
点击下方链接,关注一波
https://www.jianshu.com/c/c04ed79b97e9

留下你的关注。给个小心心再走如何?

相关文章

  • Webpack4 不完全入坑指北(一)

    写在前面距离Webpack4发布已经有一段时间了,喜欢尝新的小伙伴应该已经用上它了。在使用的过程中,或多或少都会踩...

  • Android EditText 入坑指北

    EditText 文本输入框, Android 里面超级常用的控件,不管你是要进行注册登录还是表单填写,肯定都需要...

  • SourceTree入坑指北_回滚

    [因为没有远程仓库,所以只能利用本地的分支来向master提交新代码 //不推荐使用,使用远程仓库更加方便 使用场...

  • 即刻构建,Dockerfile入坑指北

    在上一篇文章中,有幸和各位分享了一点人生的经验,正如我在文章末所说,这些都只是沧海一粟,学会 docker 的基本...

  • 理性消费,拒绝入坑(不完全指南)

    理性消费,拒绝入坑(不完全指南) 今天看到一篇文章说作者为了省几十块的钱而被迫入坑的事情。特别有感慨,我就常常会...

  • webpack4.x 入门

    前言: webpack4出了以后,一些插件变化很大,和之前的版本使用方式不一样,新手入坑,本篇将介绍如何从一开始配...

  • 微信小程序快速入坑指北

    工作需要,入手了一发小程序。由于有前端开发的经验,所以入门还是很轻松的。本文简单聊下个人对小程序的一些看法。 PS...

  • 『并发包入坑指北』之阻塞队列

    前言 较长一段时间以来我都发现不少开发者对 jdk 中的 J.U.C(java.util.concurrent)也...

  • 不完全编辑工具指北

    个人说明:在下贾某人,女,文科,2019年本科毕业生,月均文字输出量在 2万字以上,创作类型大致在:工作文案需要,...

  • Hexo on Github Pages 不完全指北

    写在前面的前面 这篇文章是之前在Github Pages上利用Hexo的心得和整理,Po在之前的主页上,转到简书上...

网友评论

本文标题:Webpack4 不完全入坑指北(一)

本文链接:https://www.haomeiwen.com/subject/cscssftx.html