webpack基础篇(一):webpack与构建发展简史

简介: webpack基础篇(一):webpack与构建发展简史

说明

玩转webpack课程学习笔记。



1、为什么需要构建工具


1、转换 ES6 语法

2、转换 JSX

3、CSS 前缀补全/预处理器

4、压缩混淆

5、图片压缩



2、前端构建演变之路


大致过程:

ant + YUI Tool grunt ==> gulp fis3 ==> webpack parcel rollup



3、为什么选择webpack


1、社区生态丰富

2、配置灵活和插件化扩展

3、官方更新迭代速度快


4、初识webpack

1、配置文件名称


  • webpack 默认配置文件:webpack.config.js
  • 可以通过 webpack --config 指定配置文件

比如:webpack --config webpack.dev.config.js

2、webpack 配置组成

module.exports = {
  entry: './src/index.js', // 打包的⼊入⼝口⽂文件
  output: './dist/main.js', // 打包的输出
  mode: 'production', // 环境
  module: { // Loader 配置
    rules: [
      { test: /\.txt$/, use: 'raw-loader' }
    ]
  },
  plugins: [ // 插件配置
    new HtmlwebpackPlugin({
      template: './src/index.html'
    })
  ]
};




5、环境搭建:安装webpack


1、安装 Node.js 和 NPM


2、安装 webpack 和 webpack-cli


  • 创建空文件夹
  • 文件夹里执行npm init -y,会生成 package.json 文件
  • 执行npm install webpack webpack-cli --save-dev
  • 检查是否安装成功:./node_modules/.bin/webpack -v

6、webpack初体验:一个最简单的例子

1、编写 webpack.config.js 文件

const path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  mode: 'production'
};



2、src文件夹里创建两个js文件

// index.js
import { helloWebpck } from './helloWebpack';
document.write(helloWebpck());
// helloWebpck.js
export function helloWebpck() {
  return 'Hello Webpack!';
}


3、执行打包命令,成功之后会生成dist文件夹,里面有bundle.js

./node_modules/.bin/webpack

4、在生成的dist文件夹里新建一个index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>hello webpack</title>
</head>
<body>
  <script src="./bundle.js"></script>
</body>
</html>


5、浏览器打开index.html文件

20200613184313277.PNG


7、通过npm script 脚本运行webpack


1、通过 npm run build 运行构建


2、原理:模块局部安装会在 node_modules/.bin ⽬目录创建软链接


{
  "name": "my-project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.43.0",
    "webpack-cli": "^3.3.11"
  }
}
目录
相关文章
|
4月前
|
缓存 监控
webpack 提高构建速度的方式
【10月更文挑战第23天】需要根据项目的具体情况和需求,综合运用这些方法,不断进行优化和改进,以达到最佳的构建速度和效果。同时,随着项目的发展和变化,还需要持续关注和调整构建速度的相关措施,以适应不断变化的需求。
|
4月前
|
存储 缓存 前端开发
利用 Webpack 5 的持久化缓存来提高构建效率
【10月更文挑战第23天】利用 Webpack 5 的持久化缓存是提高构建效率的有效手段。通过合理的配置和管理,我们可以充分发挥缓存的优势,为项目的构建和开发带来更大的便利和效率提升。你可以根据项目的实际情况,结合以上步骤和方法,进一步优化和完善利用持久化缓存的策略,以达到最佳的构建效果。同时,不断探索和实践新的方法和技术,以适应不断变化的前端开发环境和需求。
|
9月前
|
缓存 JavaScript 前端开发
探讨如何通过一系列优化策略来提升TypeScript与Webpack的构建性能。
【6月更文挑战第11天】本文探讨了优化TypeScript与Webpack构建性能的策略。理解Webpack的解析、构建和生成阶段是关键。优化包括:调整tsconfig.json(如关闭不必要的类型检查)和webpack.config.js选项,启用Webpack缓存,实现增量构建,代码拆分和懒加载。通过这些方法,可以提升构建速度,提高开发效率。
97 0
|
7月前
|
前端开发 JavaScript C++
【绝技大公开】Webpack VS Rollup:一场前端工程化领域的巅峰对决,谁能笑到最后?——揭秘两大构建神器背后的秘密与奇迹!
【8月更文挑战第12天】随着前端技术的发展,模块化与自动化构建成为标准实践。Webpack与Rollup作为主流构建工具,各具特色。Webpack是一款全能型打包器,能处理多种静态资源,配置灵活,适合复杂项目;Rollup专注于ES6模块打包,利用Tree Shaking技术减少冗余,生成更精简的代码。Rollup构建速度快,配置简洁,而Webpack则拥有更丰富的插件生态系统。选择合适的工具需根据项目需求和个人偏好决定。两者都能有效提升前端工程化水平,助力高质量应用开发。
67 1
|
7月前
|
JavaScript 前端开发 API
解锁前端开发新境界:Vue.js携手Webpack,打造高效构建流程,你的项目值得拥有!
【8月更文挑战第30天】随着前端技术的发展,模块化与组件化趋势愈发显著。Vue.js 以其简洁的 API 和灵活的组件系统,深受开发者喜爱;Webpack 则凭借强大的模块打包能力成为前端工程化的基石。两者结合,不仅简化了组件编写与引用,还通过模块热替换、代码分割等功能大幅提升开发效率。本文将通过具体示例,展示如何利用 Vue.js 和 Webpack 构建高效、有序的前端开发环境。从安装配置到实际应用,逐步解析这一组合的优势所在。
72 0
|
9月前
|
缓存 前端开发 JavaScript
Webpack作为模块打包器,为前端项目提供了高度灵活和可配置的构建流程
【6月更文挑战第12天】本文探讨了优化TypeScript与Webpack构建性能的策略。理解Webpack的解析、构建和生成阶段是关键。优化包括:调整tsconfig.json(如关闭不必要的类型检查)和webpack.config.js选项,启用Webpack缓存,实现增量构建,代码拆分和懒加载。这些方法能提升构建速度,提高开发效率。
71 3
|
10月前
|
缓存 JavaScript 前端开发
【TypeScript技术专栏】TypeScript与Webpack构建优化
【4月更文挑战第30天】本文探讨了优化TypeScript与Webpack构建性能的策略。理解Webpack的解析、构建和生成阶段是关键。优化包括:调整tsconfig.json(关闭不必要的类型检查,适配目标环境)和webpack.config.js(配置entry、output、resolve,使用压缩插件)。启用Webpack缓存和增量构建,利用代码拆分与懒加载,能有效提升构建速度和开发效率。
117 0
|
10月前
|
缓存 前端开发 JavaScript
|
10月前
|
JavaScript 前端开发 Windows
《Webpack5 核心原理与应用实践》学习笔记-> 构建Electron
《Webpack5 核心原理与应用实践》学习笔记-> 构建Electron
111 1
|
10月前
|
前端开发 JavaScript
《Webpack5 核心原理与应用实践》学习笔记-> 构建微前端应用
《Webpack5 核心原理与应用实践》学习笔记-> 构建微前端应用
126 1