让前端飞

webpack新手系列课程之—入门篇(大神请绕道)

2018-12-06  本文已影响0人  Sunny_杰少

webpack入门教程

什么是webpack

webPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到 JavaScript 模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。webpack 的最终目的是将我们开发的具有高可读性和可维护性的代码文件打包成浏览器可以识别并正常运行的压缩代码。

为什么要使用webpack

自从出现模块化以后,大家可以将原本一坨代码分离到个个模块中,但是由此引发了一个问题。每个 JS 文件都需要从服务器去拿,由此会导致加载速度变慢。webpack 最主要的目的就是为了解决这个问题,将所有小文件打包成一个或多个大文件,官网的图片很好的诠释了这个事情,除此之外,webpack 也是一个能让你使用各种前端新技术的工具。
[站外图片上传中...(image-b57738-1544107026513)]

webpack 工作方式

webpack 的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),webpack 将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。
webpack 的打包流程如下

webpack核心概念

module.exports = {
  entry: './src/file.js'
};
const path = require('path');

module.exports = {
  entry: './path/to/my/entry/file.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'my-first-webpack.bundle.js'
  }
};

webpack.config.js实例

module.exports = {
    // 打包入口:指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始
    entry: '',
    // 出口
    output: '', 
    // 配置解析:配置别名、extensions 自动解析确定的扩展等等
    resolve: {}, 
    // 开发服务器:run dev/start 的配置,如端口、proxy等
    devServer: {}, 
    // 模块配置:配置loader(处理非 JavaScript 文件,比如 less、sass、jsx、图片等等)等
    module: {},
    // 插件的配置:打包优化、资源管理和注入环境变量
    plugins: []
}

搭建目录

咱们废话不多说,开始我们今天的课程吧

新建初始目录

mkdir project  //新建project目录,这是咱们的demo的初始目录
cd project
npm init // 会新建一个package.json文件,用来管理和保存项目的基本信息及依赖

最终新建的目录如下图,src存放源码,dist为编译打包后的最终目录
[站外图片上传中...(image-b7f28a-1544107026513)]

安装依赖

npm install --save-dev webpack
npm install --save-dev webpack@<version>

如果你使用 webpack 4+ 版本,你还需要安装 CLI。

npm install --save-dev webpack-cli

对于大多数项目,我们建议本地安装。这可以使我们在引入破坏式变更(breaking change)的依赖时,更容易分别升级项目。通常,webpack 通过运行一个或多个 npm scripts,会在本地 node_modules 目录中查找安装的 webpack:
在 package.json 文件中可以写入下面的代码,作为项目的启动命令。其中 --config 的目的是为 webpack 指定配置文件。如果不使用 --config 来指定,则webpack.config.js 是默认的配置文件

// package.json
"scripts": {
    "start": "webpack --config webpack.config.js --mode=development"
}

我们在命令行中执行代码npm start,即相当于执行webpack --config webpack.config.js --mode=development
对于 npm 使用还不太熟悉的同学可以看下
npm 模块安装机制简介

注意:这边需要加上--mode=--mode=development,表示当前的环境是开发环境,不然就会默认为生产环境,出现下面黄色警告,生成的bundle文件也是被压缩过的。

image_1cofeh4j714927vm9t2n371q989.png-178.6kB

注:mode 配置是 webpack4 新加入的,它是代表项目的运行环境。通过选择 development 或 production 之中的一个,来设置 mode 参数,你可以启用相应模式下的 webpack 内置的优化。

development 模式

production 模式

这一节只搭建了基本的目录,下节开始具体的教程。

传送门第一个demo

博客都会先发布在github上。
如果有错误或者不严谨的地方,请务必给予指正,十分感谢。
如果喜欢或者有所帮助,欢迎stargithub。新手需要鼓励,希望大家不要吝啬自己的赞哦,赠人玫瑰,手有余香。

上一篇下一篇

猜你喜欢

热点阅读