webpack学习笔记.md

前言
我们知道前端或者软件开发的工作流。一般要经历以下步骤:

  • 1.搭建项目结构、
  • 2下载安装依赖、
  • 3.编码实现、
  • 4.性能优化、
  • 5.项目上线。

这其中有很多步骤是重复的,可以自动化实现的,为了解决这个问题,基于各种业务功能开发出了对应的工具`:

  • 编译类
    编译类开发工具主要用来解决浏览器对于es6的识别问题,它把es6规范的代码编译为符合es5规范的文件,在浏览器上运行。代表为babel
  • 打包类
    为了减少http请求数,尽快的加载页面,我们需要把多个js文件打包成一个直接使用,代表为browserify
  • 测试类
    • 单元测试
    • 集成测试
    • 压力测试

webpack

基于业务需求的所实现的各种工具,只能解决某一个问题,但是也存在着严重的缺点,1.需要安装多个工具;2.文件之间无法相互引用。于是webpack应运而生。

安装及使用

npm install webpcak -g
webpack -v //检查版本号,如果出现证明安装成功
wepack  //使用webpack
webpack --config 'xxx' //如果我们更改了webpack.config.json文件夹,就需要使用这中执行方式

配置webpack

对webpack的配置在webpack.config.中完成,在此之前,我们先学习下es6模块化相关知识。

es6模块化
在node中,我们使用require来引用一个文件;使用modelu.exports导出一个模块。在es6中使用export和import两种方式来实现

//1.使用export将整个文件作为模块被导出
export default  a = 2;
export default sum(){

}
// 对应引用方法
import a from './xxx'
//-------------------------------
// 2.按需导出
export let a = 3;
export let b = 4;
export function sum(){
}
// 使用这种方式要先给导出的的数值起一个名字
// 对应的引用方式
import {a,b} from './xxx'

webpack配置

webpack的配置在webpack.config.json中完成,但是在这个文件中,我们需要使用node的导入导出方式,因为这个文件不会被编译和解析。

webpack.config.js

const path = require('path');

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

多入口配置方式

const path = require('path');

module.exports = {
  entry: {
    index: './src/index.js',
    filename: './src/filename.js'
  },
  output: {
    filename: '[name]bundle.js',
    path: path.resolve(__dirname, 'dist')
  }
}

打包示例

babel-loader
安装依赖

npm install babel-loader babel-core babel-preset-env --save-d
babel-loader配置.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 6,665评论 0 16
  • 写在前面的话 阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较...
    不忘初心_9a16阅读 3,235评论 0 17
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 5,286评论 4 31
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,164评论 7 35
  • 过着很踏实,没有一点波澜的生活,就是混吃等死
    青衣束阅读 146评论 0 0