webpack
概念:webpack 是前端项目工程化的具体解决方案。
主要功能:它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端 JavaScript 的兼容性、性能优化等强大的功能。
目前 Vue,React 等前端项目,基本上都是基于 webpack 进行工程化开发的
基本使用
-
项目根目录下执行
npm init –y初始化包管理配置文件 package.json -
执行
npm install webpack@5.42.1 webpack-cli@4.7.2 -D安装 webpack 相关的两个包 -
在项目根目录中,创建名为 webpack.config.js 的 webpack 配置文件,并初始化如下的基本配置:
module.exports = { mode: 'development' //mode用来指定构建模式。可选值有 development 和 production } -
在 package.json 的 scripts 节点下,新增 dev 脚本如下:
"scripts": { "dev": "webpack" //script 节点下的脚本,可以通过 npm run 执行 }
5.运行 npm run dev 命令,启动webpack进行项目的打包构建
webpack.config.js 文件的作用
webpack.config.js 是 webpack 的配置文件。webpack 在真正开始打包构建之前,会先读取这个配置文件,从而基于给定的配置,对项目进行打包。
注意:由于 webpack 是基于 node.js 开发出来的打包工具,因此在它的配置文件中,支持使用 node.js 相关的语法和模块进行 webpack 的个性化配置。
自定义打包的入口与出口
在 webpack 4.x 和 5.x 的版本中,有如下的默认约定:
-
默认的打包入口文件为 src -> index.js
-
默认的输出文件路径为 dist -> main.js
在 webpack.config.js 配置文件中,通过 entry 节点指定打包的入口。通过 output 节点指定打包的出口。
```js
const path = require('path') //导入 node.js 的路径的模块
module.exports = {
entry: path.join(__dirname, './src/index.js'),
output: {
path: path.join(__dirname, './dist'),
filename: 'bundle.js'
}
}
```
`./`代表目前所在的目录。 `../`代表上一层目录。 `/`代表根目录。