现在依旧记得第一次看到webpack3.x 版本配置时候的状态  刚开始看到这些真的是一脸懵。希望这篇文章能帮到刚开始入门的同学。

webpack 是什么?

webpack是一个模块化打包工具,webpack 通过入口分析项目结构,找到JavaScript模块以及一些不能直接在浏览器上运行的语言、语法等 如(scss、ts、es6+等),并将其打包成可以直接在浏览器运行的js,以及压缩、加密、按需加载等。

相关概念

  • Entry:入口,webpack执行构建的第一步将从Entry开始,可理解为输入
  • Module:模块,在webpacl中一切皆为模块,一个模块对应一个文件,webpack会从配置的Entry开始递归找出所有依赖的模块
  • Chunk:代码块,一个chunk由多个模块组合而成,用于将代码合并和分割
  • Loader:模块转换器,用于把模块原内容按照需求转换为需要的新内容
  • Plugin:扩展插件,在webpack构建流程中的特定时机注入扩展逻辑来改变构建结果和想要做的事情
  • Output:输入结果,在webpack经过一系列处理并得到最终想要的代码然后输出结果
  • runTime:在浏览器运行时,连接模块的连接器
  • manifest:webpack 编译时记录所有模块的详细信息的数据集合(连接器来这里查询具体的模块)

环境搭建

1、先用npm初始化一个项目,得到 package.json 文件

1 npm init -y 或者
2 npm init // 这个要填写一些信息 如 名称 邮箱 版本 等等

2、安装webpack 4 将CLI 独立出来了,所以需要安装两个包

1  npm install webpack webpack-cli -D

webpack-cli 我觉得全局安装比较方便,命令行全局安装不会造成版本冲突之类的。根据官网的api,现在我们可以进行打包了。

但是为了更加方便的打包我们需要用到npm script 功能(简单的说就是临时把node_modules 路径加到系统环境变量)。

先建立好相关文件如 webpack.config.js

在package.json  scripts 中加入

1 "build:dev": "webpack --mode development"

在webpack.config.js 中导出一个最简单的对象给webpack

 1 'use strict'
2 const path = require('path')
3
4 // path
5 function resolve (dir) {
6 return path.join(__dirname, dir)
7 }
8
9 module.exports = {
10 mode: 'development',
11 entry: {
12 app: './main.js'
13 },
14 output: {
15 filename: '[name]-[hash].js',
16 path: path.resolve(__dirname, 'dist'),
17 publicPath: './'
18 }
19
20 }

在窗口执行

1 npm run build:dev

不出问题,应该是打包成功了。

源码

https://github.com/ben-Run/webpack-learn

要是帮到你了可以点下star, 哈哈~~~

最新文章

  1. ASP.NET MVC5----常见的数据注解和验证
  2. 【腾讯Bugly干货分享】Android Patch 方案与持续交付
  3. JSON入门教程
  4. STM32——外部中断EXIT实现
  5. install skype4.3 in ubuntu15.04
  6. Brackets(区间dp)
  7. 2016.3.22考试(HNOI难度)
  8. 如何在 Linux 上用 SQL 语句来查询 Apache 日志
  9. 真正的inotify+rsync实时同步 彻底告别同步慢
  10. PHP集成支付宝快速实现充值功能
  11. 关于main函数的定义
  12. sass笔记-3|Sass基础语法之样式复用和保持简洁
  13. 程序实现LayoutAnimationController
  14. 未在本地计算机上注册“Microsoft.Ace.OleDB.12.0”
  15. pypinyin, jieba分词与Gensim
  16. Spring Boot web简介及原理 day04
  17. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'multipartResolver': Failed to introspect bean class [org.springframework.web.multipart.commons.CommonsMultipartR
  18. Unity笔记 英保通 Unity新的动画系统Mecanim
  19. 【转】Python数据处理(四舍五入、除法部分)
  20. Python: 矩阵与线性代数运算

热门文章

  1. BZOJ3211 花神游历各国(分块 区间开根号)
  2. php foundation knowledge!
  3. TypeScript Version 23 Design Patterns
  4. full page screen capture in js
  5. taro 小程序 & touch event 转换 bug
  6. JavaScript Best Practice
  7. NGK治理机制研究
  8. go-admin在线开发平台学习-3[细节解析]
  9. Python爬虫_豆瓣电视剧
  10. 无情面试官之包含min函数的栈