初识webpack

webpack是帮助我们管理复杂项目的工具。

学习webpack会极大扩充前端开发视野。

webpack可以实现:

Tree shaking

懒加载

代码分割

webpack4速度更快,大型项目甚至可以节约90%构建时间。

内置了更多的默认配置,变更了许多API。

Loader

HMR

Create React App

Caching

Plugin

SourceMap

Vue cli 3.0

Shimming

WebpackDevServer

TreeShaking

CodeSplitting

babel

React

Library

Eslint

PWA

Vue

Mode

性能优化

多页应用

原理

PreLoading

PreFetching

环境变量

TypeScript

在项目内安装webpack

npm init -y:自动生成默认配置项package.json,不用一步一步选择

不推荐在全局安装,因为可能出现两个项目用的webpack版本不一样的情况

安装:npm install webpack webpack-cli -D(或者 --save-dev)

查看版本号:npx webpack -v :npx会帮你在当前项目的node_modules里找webpack

查看webpack所有历史版本:npm info webpack

指定版本号安装:npm install webpack@4.25.1 webpack-cli -D

打包项目:npx webpack index.js

如果后续创建了webpack.config.js配置文件之后,就可以直接运行npx webpack了。

在当前项目目录下创建:webpack.config.js:配置文件

用commonJS语法,module.exports导出,

下面的entry是简写,实际上是:

entry: {

main: './index.js'

}

// 引入node的核心模块
const path = require('path')
module.exports = {
// 入口文件,从index.js打包
entry: './index.js',
// 打包生成的文件放到dist文件夹下,__dirname是webpack.config.js所在的当前目录路径
output: {
// filename指定生成的文件名
filename: 'bundle.js',
path: path.resolve(__dirname,'dist')
}
}
// 使用npx webpack --config config1.js可以修改默认关联的配置文件由webpack.config.js变成config1.js,以config1.js为配置文件进行打包
// 在package.json中可以修改"script"标签后的配置,比如"bundle":"webpack",这样在命令行输入npm run bundle也可以将项目进行打包

打包输出的内容:

npm run bundle之后,终端命令行里会显示几行信息表示打包成功,Chunks是打包的id,Chunk Names就是entry下面的main。

如果没有设置mode: 'production',命令行会提示警告,在entry之前加上mode的配置就不会再提示警告了,如果不想打包出来的文件压缩,可以把'production'改成'development'。'production'是默认压缩打包之后的文件的。

webpack核心概念

loader: webpack不能识别非js后缀结尾的模块,就需要通过loader让webpack识别出来,在配置文件中增添module配置项,使用'file-loader'(需要npm install file-loader)

webpack进阶

webpack实战配置案例

webpack底层原理及脚手架工具分析

值得一学的webpack4的更多相关文章

  1. 值得一学的C语言

    P1085 不高兴的津津 #include <stdio.h> int main( ) { int a,b; int max=0; int result; for (int i = 0; ...

  2. 【转】科大校长给数学系学弟学妹的忠告&本科数学参考书

    1.老老实实把课本上的题目做完.其实说科大的课本难,我以为这话不完整.科大的教材,就数学系而言还是讲得挺清楚的,难的是后面的习题.事实上做1道难题的收获是做10道简单题所不能比的. 2.每门数学必修课 ...

  3. webpack4提升180%编译速度

    前言 对于现在的前端项目而言,编译发布几乎是必需操作,有的编译只需要几秒钟,快如闪电,有的却需要10分钟,甚至更多,慢如蜗牛.特别是线上热修复时,分秒必争,响应速度直接影响了用户体验,用户不会有耐心等 ...

  4. 字典树 - A Poet Computer

    The ACM team is working on an AI project called (Eih Eye Three) that allows computers to write poems ...

  5. 自己瞎捣腾的Win7下Linux安装之路-----理论篇

    接着上回说道,我把双系统做好啦,开心.... 之后我就在想几个问题: 1.在Ubuntu装好后,重启电脑却还是win7,等我用EasyBCD之后,才可选择使用装好的Ubuntu呢? 2.在用EasyB ...

  6. libqxt编译

    一.说明 编译环境:win10.qt5.6.1-1.vs2013和libqxt源码(从git上下载) libqxt:libqxt 关于libqxt的说明,请到libqxt的官网阅读,说着看图1,图1是 ...

  7. nodejs实现Websocket的数据接收发送

    在去年的时候,写过一篇关于websocket的博文:http://www.cnblogs.com/axes/p/3586132.html ,里面主要是借助了nodejs-websocket这个插件,后 ...

  8. Yii2初级入门教程

    下载安装 Yii挺火的,也是MVC的Web框架.国内占有率,相当不错.值得一学. 网络上提供了两个版本模板的下载, advanced, 和 basic, 使用起来一致, 提供的模块支持不同. Adva ...

  9. 【leetcode】Remove Duplicates from Sorted Array

    题目描述: Given a sorted array, remove the duplicates in place such that each element appear only once a ...

随机推荐

  1. curl 命令-接口测试

    在linux/Unix 为代表的os上, 对后端进行测试, 模拟连接请求都会书写脚本 场景: 在Linux 上接口测试工具有ab, restClient, postman等, 最常用的方法是curl进 ...

  2. 基于gdal的格网插值

    格网插值就是使用离散的数据点创建一个栅格图像的过程.通常情况下,有一系列研究区域的离散点,如果我们想将这些点转换为规则的网格数据来进行进一步的处理,或者和其他网格数据进行合并 等处理,就需要使用格网插 ...

  3. anki server 错误与解决

    anki 客户端 转载请注明出处 :http://www.cnblogs.com/qq-757617012/ 1.无法同步 是否突然停电,导致程序损坏(提示被防火墙或杀毒软件阻止)     anki客 ...

  4. VS与Windbg调试

    原文 :  https://blog.csdn.net/fin86889003/article/details/20126593 原文 :  https://blog.csdn.net/u014339 ...

  5. 使用axios 的post请求下载文件,

    axios({ method: 'post', data: param, responseType:'blob', url: _urls + '/Downloaddata' }).then(data= ...

  6. Centos7修改yum源

    1. 备份本地yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 2.获取阿里yum源配置文 ...

  7. 心智与认知(1): 反馈循环(Feedback loop)

    目录: ** 0x01 反馈循环(Feedback loop) | How to see System in everyday life ** 0x02 如何像视频游戏一样剖析你的人生?| 打怪升级这 ...

  8. Spring Cloud Netflix vs Spring Cloud Alibaba

    Spring Cloud Netflixhttps://spring.io/projects/spring-cloud-netflix spring-cloud-alibaba/README-zh.m ...

  9. mysql索引原理

    1.B+Tree 索引的数据结果是B+Tree,它比BTree查询时,以更少的IO次数占优势. 2.聚集索引与非聚集索引 聚集索引:索引的逻辑顺序与磁盘上数据的物理顺序相同.(表中最多只有一个) 比如 ...

  10. React Native & iframe & WebView

    React Native & iframe & WebView React Native 怎么渲染 iframe 页面 WebView & source html https: ...