第二节:Webpack核心概念与安装使用

1. Webpack的核心概念

1.1 核心概念说明:
1.1.1 入口(entry)

入口起点(entry point)指示 webpack 应该使用哪个模块(文件),作为构建其内部依赖图的开始

说明:

  1. 在webpack构建时,会先找到入口文件,
  2. 然后在入口文件中无找到需要直接或间接依赖的模块
  3. webpack将每个依赖进行处理,最后出入构建后的结果

例如:

module.exports = {
  entry: 'index.js'
}

1.1.2 出口(output)

Output: 输出指示,告诉Webpack打包好的资源bundles输出到哪里去,以及如何命名输出的文件

例如:

module.exports = {
    entry : 'index.js',
    output: {
        filename: 'handle.js', // 配置导出的文件名
        path: resolve(__dirname,'dist')  // 将打包后的文件放在哪个文件夹中
    }
}

1.1.3 Loader 处理文件

Webpack核心只能处理JavaScript已经JSON资源文件, 非JS文件Webpack只能交给Loader处理

通过来说就是通过loaderwebpack不能是被的文件转成webpack能识别的模块

例如:

module.exports = {
    module: {   // module
        rules: [  // 规则
            {
                 // 正则匹配
                test: /\.css&/,  

                // 使用css-loader,将css转成js能识别的模块
                use: 'css-loader'  
            }
        ]
    }
}

1.1.4 Plugin 插件

Plugin插件,可以用于执行范围更广的任务.插件的范围包括从打包优化,压缩,到重新定义环境变量.

通俗的来了解,插件就是对于webpack功能的扩展

例如:

const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    plugins: [
        new HtmlWebpackPlugin();
    ]
}

1.1.5 Mode模式

Mode 模式, 用来告诉Webpack在不同的模式下使用不同的配置,主要有开发模式和生产模式

对于核心的概念现有一个初步的认识,后面会大量的讲解和使用

1.2 Model 模式的了解

Mode模式用于指定Webpack打包使用相应模式的配置

选项 描述 特点
development 会将process.env.NODE_ENV的值设置为development 能让代码本地调试运行的环境
production 会将process.env.NODE_ENV的值设置为production 能让代码优化上下运行的环境

简而言之,

  1. 开发环境development,为了本来调试不会对打包后的代码进行压缩
  2. 生产环境production,为了上线的性能,会将打包后的代码进行压缩

2. Webpack安装

2.1 Webpack安装

全局安装

$ npm install -g webpack webpack-cli

局部安装

注意局部安装 将webpack安装到开发依赖中

$ npm install webpack webpack-cli --save-dev

2.2 webpackwebpack-cli介绍
2.2.1 介绍

webpack3webpack-cli是合在webpack中。所以在安装webpack3版本的时候,

只需要安装下面的命令就可以了

## webpack3 安装方式
$ npm install -g webpack

webpack4.0 以后,执行方式就发生了改变,不再是 webpack 一波流,而是多了一个 webpack-cli。所以安装时两个都需要安装

2.2.2 两者之间的关系
  1. webpackwebpack的核心代码

  2. webpack-cli是提供webpack命令

3. webpack的简单使用

使用Webpack对模块化文件进行打包

3.1 对于webpack打包命令的了解

语法使用

$ webpack <entry> <output>

例子

$ webpack index.js bundle.js

命令的意思,是将index.js作为打包的入口开始打包,打包后的文件叫做bundle.js

3.2 定义模块
image
3.2 通过webpack命令打包

[图片上传失败...(image-ffa543-1656769434927)]

3.4 打包后的文件
image
3.5 显示结果
image

总结:

  1. webpack 只能处理js/json资源,不能处理img/css等其他资源
  2. 生产环境和开发环境将模块化编译成浏览器能识别的模块化
  3. 生产环境比开发环境多一个压缩js带代码的功能
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容