webpack的基础配置

前言:webpack作为现在前端最主流的打包工具,几乎成为了前端开发必会的东西了。今天就来说一说webpack最基础的配置把

1、webpack的安装

  • 全局安装: npm install webpack webpack-cli -g
    意思是同时全局 安装webpack 和webpack的脚手架,这样会默认下载webpack的最新版本。
  • 本地安装:npm install webpack webpack-cli -D
  • 需要注意的是:在全局安装之后 我们真正使用 webpack 还需要本地安装 , -D是添加到开发依赖 不属于生产依赖, 开发依赖也就是说只是在项目开发过程中 会 用到它, 生产依赖 也就是说 等到项目上线了之后都会用到它。
  • 重要结论:
    1、webpack能处理 js/json资源 不能处理css/img等其他资源
    ​ 2、生产环境和开发环境将ES6模块化编译成浏览器能识别的模块化~
    ​ 3、生产环境比开发环境多一个压缩的js代码

2、webpack的五个核心概念

1、Entry

入口(Entry) 指示 Webpack 以哪个文件为入口起点卡死打包,分析构建内部依赖图。

2、Output

输出(Output)指示 Webpack 打包后的资源 bundle 输出到哪里去,以及如何命名;

3、Loader

Loader 让 Webpack 能够去处理那些非JavaScript文件 (webpack自身只能理解JavaScript)

4、Plugins

插件(Plugins)可以用于执行范围更广的任务。插件的范围包括从打包优化和压缩,一直到重新定义环境中的变量等。

5、Mode

模式(Mode)指示 Webpack 使用相应模式的配置

3、webpack内置的一个开发服务

安装命令
npm install webpack-dev-server -D (相当于是开启一个本地服务)
安装了这个才能 配置 npm run serve 启动本地服务
在这里插入图片描述
上面package.json文件中那个 serve 是自己配置的,也就是说不一定要写 serve 写其他的也可以,比如写个 dev 也行;
当配置了上面那些服务后,执行npm run serve 就相当于执行了 npx webpack-dev-server
–open 是运行项目时自动打开浏览器

webpack 打包输出

1、配置

在这里插入图片描述
这个也需要在 package.json中配置 在scripts 脚本中 配置一个 build命令,当然,也是任意取名字都行,这里只是见名思意就叫build;
当执行了 npm run build 就相当于执行了 webpack --config webpack.config.js 也就是相当于执行了webpack的配置文件;
在这里插入图片描述

2、打包输出的路径

在这里插入图片描述
需要注意的是,上面需要引入 node 中的一个path路径模块 ,因为 output下面的 path 需要的是绝对路径
需要在上面写一行引入 path 的代码:

let path = require('path');  // 引入 node 中的path模块

然后引入绝对路径,要用到 path 模块中的 resolve() 方法;

path: path.resolve(__dirname,'dist')    //路径必须是一个绝对路径,打包后的文件放在哪;

3、打包后,指定文件目录,运行静态服务,打开网页

  • 首先需要安装插件: npm install html-webpack-plugin

这个插件是 在打包时 将模板html 文件 与dist目录下的bundel.js 整合起来,然后再生成一个 index.html 文件 放在 dist 目录下
在这里插入图片描述
意思是,在我们打包时,将会以我们指定的src文件中的 index.html 为模板 在与 bundel.js 整合起来,然后再生成一个 index.html 文件 放在 dist 目录下

 plugins:[   // 数组中放着所有的 webpack 插件
        new HtmlWebpackPlugin({
            template:'./src/index.html', // 以这个作为模板
            filename:'index.html',   // 打包出来的index.html文件
            minify:{    // 配置打包时的优化
                removeAttributeQuotes:true,  //删除属性的双引号
                collapseWhitespace:true,    // 打包后变成一行显示
            },
            hash:true   // 显示哈希戳
        })
    ]

plugins数组就是专门用来 放有关插件的,其实webpack也就是各种插件堆叠起来的

4、打包后运行的静态文件

在这里插入图片描述
也就是说,当我们项目打包后,运行的时候,就会以我们当前指定的这个 目录 运行我们的静态服务,打开的网页也就是这个目录下的 index.html 文件

这是我刚学webpack时,所遇到的一些知识点,也让我知道了以前在 vue-cli 项目中为什么 npm run serve 之后就能运行项目了,原来它其中的知识点涉及到的还是非常多的,总体来说,webpack学起来还是有点难度的,首先你必须要有一些node的基本的知识,还要有点 es6 的知识。如果有什么地方写错了,还希望各位大佬指出来!

发布了28 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43353619/article/details/105158963