初入webpack

为什么需要构建工具?

通过caniuse我们了解到 现代浏览器对es6特性的支持程度:

由于现代浏览器对es6特性的支持度并不能说太高,为了兼容所以需要进行 es6语法的转换,除了此,三大框架的语法特征,例如转换JSX,双括号等, 还有其他如CSS前缀补全/预处理器,JS压缩混淆,图片压缩等。

前端构建演变

构建工具说明

YUI Compressor:https://github.com/yui/yuicompressor, YUI压缩器是一种JavaScript和CSS压缩器,除了删除注释和空格外,还使用尽可能小的变量名来混淆局部变量。

Grunt:https://github.com/gruntjs/grunt, Grunt是一个JavaScript任务运行器,本身就使用JavaScript开发,灵活的管理任务间的依赖和 执行定义的任务。

Gulp:https://github.com/gulpjs/gulp, gulp是基于流的自动化构建工具,除了管理和执行任务,还支持监听读写文件。

fis3:https://github.com/fex-team/fis3, 集成了web开发中常用的构建功能,如资源定位,文件编译,压缩,雪碧图等。

rollup:https://github.com/rollup/rollup, 专注于ES6模块化,可将一小段代码编译成更大或更复杂的内容,例如库或应用程序。

webpack:https://github.com/webpack/webpack, 一切皆模块,支持模块打包及丰富的插件扩展功能。

parcel:https://github.com/parcel-bundler/parcel, 极速零配置Web应用打包工具,新兴地打包工具。

初识webpack

webpack打包理念:一切皆模块。

由于丰富的社区插件和扩展,及官网的版本迭代速度及性能优化等优势,我们来切入对webpack的了解。

环境搭建:安装webpack和webpack-cli

1、创建webpack-beginner文件夹,并初始化依赖包环境

mkdir webpack-beginner
cd webpack-beginner
npm init -y

2、安装webpack和webpack-cli,其中--save-dev参数默认打包时不会打包进入 生产环境的依赖包上。

npm install webpack webpack-cli --save-dev

配置文件名称

webpack默认配置文件为webpack.config.js。

可以通过package.json配置启动项,通过webpack --config 指定配置文件, 实现对应配置文件的设置。

webpack配置组成

module.exports = {
    mode:‘production‘,  // -- 模式
    entry:‘./src/index.js‘,  // -- 打包入口文件
    output:‘./dist/main.js‘, // -- 打包输出
    module: {
        rules: []    // --loader配置
    },
    plugins: []      // -- 插件配置
}

其中:

  • entry:入口起点(entry point)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始, 每个依赖项随即被处理,最后输出到称之为 bundles 的文件中。默认指定的entry为: ./src/index.js。
  • output: webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件。默认指定的 outpu为:./dist/main.js。
  • loader:loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。 loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块。
    在webpack配置中loader有两个目标:
    1、test属性,用于标识出应该被对应的loader进行转换的某个或某些文件。
    2、use属性,表示进行转换时,应该使用哪些loader。
  • plugins:插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量。 可通过require引入并添加到plugins数组的方式使用。也可以在一个配置文件中因为不同目的而多次使用同一个插件, 这时需要通过使用 new 操作符来创建它的一个实例。
  • mode:通过设置development或production参数来设置对应的不同环境。

webpack初体验

demo对应的代码地址:https://github.com/PCAaron/blogCode/tree/master/webpack/webpack-beginner

1、由于package.json默认可读取.bin下目录的命令,我们可通过package.json中scripts 中设置启动项,通过npm run 启动配置,方式运行构建。

2、创建webpack.config.js设置简单的打包构建,实现js的打包并 输出到bundle.js中。

const path = require(‘path‘)

module.exports = {
    entry:‘./src/index.js‘,
    output:{
        path: path.resolve(__dirname,‘dist‘),
        filename: ‘bundle.js‘
    },
    mode:‘production‘
}

3、然后新增src目录,index.js为入口文件。

4、目前没有html页面查看打包后的代码,通过dist目录手动 创建index.html并引入/dist/bundle.js查看打包结果。

输出结果:

推荐阅读

后续文章优先更新于GitHub和公众号上,欢迎大家star和关注提前获取最新文章,感谢~

GitHub:https://github.com/PCAaron/PCAaron.github.io

公众号:前端美食汇,亦可直接扫文末二维码直接关注

原文地址:https://www.cnblogs.com/aaron-pan/p/12148001.html

时间: 2024-08-05 18:38:12

初入webpack的相关文章

初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序

初入码田--ASP.NET MVC4 Web应用开发之一  实现简单的登录 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-29 再次之前,需要一台电脑(- ̄▽ ̄)-,以及Visual Studio 2013或者更高版本,SQL Sever数据库(暂时不用) 新建项目 下面会出现选择模板选项(我们选择的是MVC模板) 其中,在创建MVC模板时会有身份验证选项.可选择添加的文件夹和核心引用(Web Form和Web API)以及单元测试选项 身份验证分

0x00linux32位汇编初入--前期准备

0x00汇编初入--前期准备 一.汇编工具 在linux平台下常用的编译器为as,连接器为ld,使用的文本编辑器为vim,汇编语法为att 以下是一些工具: addr2line 把地址转换为文件名和行号 ar 创建,修改和展开文件存档 as 汇编器 c++filt 还原c++符号过滤器 gprof 显示程序简档信息 ld 把目标代码文件链接 nlmconv 把目标代码转换为Netware loadable Module格式 nm 列出目标文件中的符号 objcopy 复制和翻译目标文件 objd

初入树莓派1----安装系统+进入SSH

为了更好的从事程序员事业.填坑linux.为学弟打下第一手资料.留下linux培训教材-- -------实际就是为了搭个路由器///玩玩.... 入了树莓派3b +电源+外壳+sd卡---300大洋--------肉疼 树莓派3b的耗电量还是挺大的推荐买个2A以上的电源. ////////////////////////////////////分割线/////////////////////////////////////////// 树莓派系统安装+进入命令行 树莓派支持 数十款操作系统 一

初入'C',以做一个例题有感。

题目:写一个函数返回参数二进制中 1 的个数 方法1: 我自己写的,运用'%'和'/',感觉挺简单的. int count_one_bit(int num) { unsigned int count=0; while(num) { if(num%2==1) count++; num=num/2; } return count; } int main() { int n = 0; int count = 0; scanf("%d", &n); count = count_one_

初入前端,面对一个项目应注意哪些?

前言: 对于初入职场的前端小白来说,一整个项目来了,顿时感觉压力山大,张皇失措,也总会感到手忙脚乱.其实不用怕,拆分步骤,把每个步骤做好,做细,一切都迎刃而解,犹如顺藤摸瓜般畅快淋漓. 目录: 概念的介绍(可略) 项目分哪几个阶段(每个阶段注意什么) 如何排期 解决问题的方法 概念的介绍: PM(产品经理)负责需求的提出和项目的引导.PM根据产品特点和发展目标提出一定的需求,并协调各方资源投入开发.若需求层面有不清晰的地方,应当向PM沟通确认,如:需要做什么.希望达到什么效果.哪些内容应重点保证

致初入职场的兄弟姐妹

致初入职场的兄弟姐妹   我很喜欢电影<燃情岁月>中的那句台词--"有些人能够听见自己内心的声音,非常的清楚,他们依循着自己的内心来行事.这些人变得疯狂,或者成为传奇--"(Some people hear their own inner voices with great clearness and they live by what they hear. Such people become crazy, or they become legends. )     这是

初入京都的回想

北京,一个都市繁华的高新产业聚集地,我也就这样的来了.为了我的前端梦想. -----小飒的成长史 2012年 自从2012年进入软件工作室的那一刻起,我的生活就发生了与好友截然不同的状态.想想也觉得很神奇,大一一结束就进入一个软件工作室,这个工作室很励志,自然它叫励志工作室.进入工作室的第一项内容就是接触培训,菜鸟就是菜鸟,培训的学长学姐们说什么都是那张目瞪口呆的听着,似懂非懂,却也听的如此着迷.当时的崇拜感,现在想想也是异常激动. 头两个星期除了看基础视频,就是大家不停的通过八哥打字员这个软件

Head First 之 Design Pattern(一):Strategy Pattern &amp;&amp; 初入设计模式殿堂

头一回阅读<Head First 设计模式>,感觉语言生动形象,把一个个抽象的模式描述的浅显易懂,就像白话文一样. 正如作者推荐如何使用这本书. 你懂Java吗(不太懂... 会C++不影响吧)? 你想学习.了解.记得并应用设计模式,以及其所基于的OO设计原则吗(是的,我正在深入学习C++呢)? 你是不是更喜欢一种轻松愉悦的学习环境(absolutely)? 这本书正是我需要的~   "Head First"就是那些不断学习的人们,像他们致敬,共勉加油~ 使用设计模式最好的

初入前端框架bootstrap--Web前端

Bootstraps是一种简洁.直观.强悍的前端开发框架,它让web开发更迅速.简单.对于初入Bootstrap的小白,高效进入主题很重要,能为我们节省很多时间,下面我将对使用Bootstrap开发前应该做什么做出详细指引,初学者可以围观一下,大神可以忽略哦! 1.下载Bootstrap框架 Bootrap:http://getbootstrap.com/2.3.2/getting-started.html Bootrap中文网:http://v3.bootcss.com/getting-sta