前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

webpack4定制前端开发环境

首页
2018-09-04 15:10:12
Build
webpack

来源掘金小册笔记

# 一、webpack概念和基础使用

# 1.1 安装和使用

npm install webpack webpack-cli -g 

# 或者
yarn global add webpack webpack-cli

# 然后就可以全局执行命令了
webpack --help
@前端进阶之旅: 代码已经复制到剪贴板

# 1.2 webpack 的基本概念

webpack 本质上是一个打包工具,它会根据代码的内容解析模块依赖,帮助我们把多个模块的代码打包

webpack 会把我们项目中使用到的多个代码模块(可以是不同文件类型),打包构建成项目运行仅需要的几个静态文件

入口

入口可以使用 entry 字段来进行配置,webpack 支持配置多个入口来进行构建

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

// 上述配置等同于
module.exports = {
  entry: {
    main: './src/index.js'
  }
}

// 或者配置多个入口
module.exports = {
  entry: {
    foo: './src/page-foo.js',
    bar: './src/page-bar.js', 
    // ...
  }
}

// 使用数组来对多个文件进行打包
module.exports = {
  entry: {
    main: [
      './src/foo.js',
      './src/bar.js'
    ]
  }
}...

@前端进阶之旅: 代码已经复制到剪贴板

loader

可以把 loader 理解为是一个转换器,负责把某种文件格式的内容转换成 webpack 可以支持打包的模块

  • 当我们需要使用不同的 loader 来解析处理不同类型的文件时,我们可以在 module.rules 字段下来配置相关的规则,例如使用 Babel 来处理 .js 文件
module: {
  // ...
  rules: [
    {
      test: /\.jsx?/, // 匹配文件路径的正则表达式,通常我们都是匹配文件类型后缀
      include: [
        path.resolve(__dirname, 'src') // 指定哪些路径下的文件需要经过 loader 处理
      ],
      use: 'babel-loader', // 指定使用的 loader
    },
  ],
}...
fe
  • 一、webpack概念和基础使用
    • 1.1 安装和使用
    • 1.2 webpack 的基本概念
  • 二、搭建基础的前端开发环境
    • 2.1 关联 HTML
    • 2.2 构建 CSS
    • 2.3 CSS 预处理器
    • 2.4 处理图片文件
    • 2.5 使用 Babel
    • 2.6 启动静态服务
    • 2.7 完整示例代码
  • 三、webpack如何解析代码模块路径
    • 3.1 常用的一些配置
  • 四、配置loader
    • 4.1 loader 匹配规则
    • 4.2 规则条件配置
    • 4.3 使用 loader 配置
    • 4.4 loader 应用顺序
    • 4.5 完整代码
  • 五、使用plugin
    • 5.1 DefinePlugin
    • 5.2 copy-webpack-plugin
    • 5.3 extract-text-webpack-plugin
  • 六、更好使用webpack-dev-server
    • 6.1 基础使用
    • 6.2 配置
  • 七、开发和生产环境的构建配置差异
    • 7.1 在配置文件中区分 mode
    • 7.2 运行时的环境变量
    • 7.3 常见的环境差异配置
    • 7.4 拆分配置
    • 7.5 完整代码
  • 八、模块热替换提高开发效率
    • 8.1 配置使用 HMR
    • 8.2 module.hot 常见的 API
  • 九、图片加载优化
    • 9.1 CSS Sprites
    • 9.2 图片压缩
    • 9.3 使用 DataURL
    • 9.4 代码压缩
  • 十、分离代码文件
    • 10.1 webpack 4.x 的 optimization
    • 10.2 webpack 3.x 的 CommonsChunkPlugin
  • 十一、进一步控制JS大小
    • 11.1 按需加载模块
    • 11.2 以上完整示例代码

← 浅谈PWA(Progressive Web App)Taro开发小程序体验 →