webpack5 基本配置

Webpack配置实战

在这里插入图片描述
const path=require(“path”);
const {CleanWebpackPlugin}=require(“clean-webpack-plugin”);
const HtmlWebpackPlugin=require(“html-webpack-plugin”);
const {DefinePlugin}=require(“webpack”) ; //webpack内置的插件
const CopyWebpackPlugin=require(‘copy-webpack-plugin’);
const {VueLoaderPlugin}=require(“vue-loader/dist/index”)

module.exports={
mode:“development”,
devtool:“source-map”,
entry:“./src/main.js”,
output:{
path:path.resolve(__dirname,“./build”),
filename:“js/bundle.js” //将js文件放到js里面
},
module:{
rules:[
{
test:/.js$/,
loader:“babel-loader”
// use:
// {
// loader:“babel-loader”,
// options:{
// // plugins:[
// // “@babel/plugin-transform-arrow-functions”,
// // “@babel/plugin-transform-block-scoping”
// // ],
// // presets:[
// // “@babel/preset-env”
// // ]
// }

      // }
    


  },
  {
    test:/\.(less|css)$/,
    //1.loader语法糖
    // loader:"css-loader"
    //2.完整写法
    use:[
      "style-loader",
      "css-loader",
      "less-loader",
      "postcss-loader"
      // {
      //   loader:"postcss-loader",
      //   options:{
      //     postcssOptions:{
      //       plugins:[
      //         require("autoprefixer")
      //       ]
      //     }
      //   }
      // } 
    ]
  },
  // {
  //   test:/\.less$/,
  //   use:[
  //     "style-loader",
  //     "css-loader",
  //     "less-loader"
  //   ]

  // },
  // {
  //   test:/\.(jpe?g|gif|png|svg)$/,
  //   use:[
  //     {
  //       loader:"url-loader",
  //       options:{
  //         // outputPath:"img", //放到哪个文件夹下
  //         name:"img/[name]_[hash:6].[ext]",//文件名
  //         limit:120*1024,
  //         esModule:false,  //关闭url-loader es6 模块化,使用commonjs解析
  //       }
  //     }

  //   ],
  //   type:"javascript/auto"//不会出现2张图片
  // },
  // {
  //   test:/\.(jpe?g|svg|gif|png)$/,
  //   type:"asset",
  //   generator:{
  //     filename:"img/[name]_[hash:6][ext]"

  //   },
  //   parser:{
  //     dataUrlCondition:{
  //       maxSize:120*1024,
  //     }
  //   }
  // },
  {
    test:/\.(jpe?g|png|gif|svg)$/,
    type:"asset",
    generator:{
      filename:"img/[name]_[hash:6][ext]"
    },
    parser:{
      dataUrlCondition:{
        maxSize:20*1024
      }
    }
  },
  {
    test:/\.(eot|ttf|woff2?)$/,
    type:"asset/resource",
    generator:{
      filename:"font/[name]_[hash:6][ext]"
    }

  },
  {
    test:/\.vue$/,
    loader:"vue-loader"
  }
]

},
plugins:[
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
template:‘./public/index.html’,
title:“哈哈哈哈”
}),
new DefinePlugin({
BASE_URL:“‘./’”,
VUE_OPTIONS_API:true,
VUE_PROD_DEVTOOLS:false,
VUE_PROD_HYDRATION_MISMATCH_DETAILS:false
}),
new CopyWebpackPlugin({
patterns:[
{
from:“public”,
globOptions:{
ignore:[
“**/index.html”
]
}
}
]
}),
new VueLoaderPlugin()

]

}

在这里插入图片描述
在这里插入图片描述

### Webpack基本配置方法 Webpack 是一种强大的模块打包工具,能够将前端的各种资源(JavaScript、JSON、CSS、图片等)视为模块并进行统一管理。以下是关于如何设置 Webpack 基本配置的方法: #### 1. 安装 Node.js 和 初始化项目 由于 Webpack 构建于 Node.js 环境之上,因此需要先安装 Node.js[^2]。接着通过 `npm init` 来初始化一个新的 npm 项目。 ```bash npm init -y ``` 这一步会在当前目录下生成一个默认的 `package.json` 文件。 --- #### 2. 安装 Webpack 及其 CLI 工具 为了使用 Webpack,需安装 Webpack 和它的命令行接口 (CLI)。推荐将其作为开发依赖项安装: ```bash npm install --save-dev webpack webpack-cli ``` 如果希望指定特定版本(如 v4),可以通过以下方式完成安装: ```bash npm install --save-dev webpack@4 webpack-cli@3 ``` --- #### 3. 创建基础文件结构 按照惯例,通常会创建以下几个主要目录和文件[^5]: - **src/**: 存放项目的源代码。 - **dist/**: 打包后的输出文件存放位置。 - **index.html**: HTML 页面入口。 - **webpack.config.js**: Webpack 配置文件。 例如,下面展示了一个简单的文件夹结构: ``` webpack_demo/ ┣ dist/ // 打包后生成的 ┃ ┗ main.js ┣ src/ ┃ ┣ components/ ┃ ┃ ┣ common.js ┃ ┃ ┗ util.js ┃ ┗ app.js ┣ index.html ┣ package.json ┗ webpack.config.js ``` --- #### 4. 编写 Webpack 配置文件 (`webpack.config.js`) Webpack 提供了一种基于 JavaScript 的配置机制,允许开发者定义各种选项来控制打包行为。最常用的几个字段包括 `entry`, `output`, 和 `mode`[^3]。 ##### 示例配置: ```javascript const path = require('path'); module.exports = { entry: './src/app.js', // 指定入口文件路径 output: { filename: 'main.js', // 输出文件名 path: path.resolve(__dirname, 'dist') // 输出目标目录 }, mode: 'development' // 设置模式为 development 或 production }; ``` 上述配置中: - `entry`: 表示应用的起点,默认值为 `'./src/index.js'`。 - `output.filename`: 定义最终打包文件的名字。 - `output.path`: 必须是一个绝对路径,表示打包文件存储的位置。 - `mode`: 支持两种模式——`production`(优化性能) 和 `development`(调试友好)。 --- #### 5. 添加脚本到 `package.json` 为了让用户更便捷地运行 Webpack,可以在 `package.json` 中添加自定义脚本。比如,在 `"scripts"` 字段里加入如下内容: ```json { "scripts": { "build": "webpack" } } ``` 之后只需执行以下命令即可启动打包过程: ```bash npm run build ``` --- #### 6. 处理其他类型的静态资源 除了 JavaScript 文件外,还可以利用加载器(Loaders)处理样式表、图像和其他资产。例如,若想支持 CSS,则需要额外引入 `style-loader` 和 `css-loader` 并更新配置[^4]。 ```bash npm install --save-dev style-loader css-loader ``` 随后修改 `webpack.config.js` 加入新规则: ```javascript module.exports = { ... module: { rules: [ { test: /\.css$/, // 匹配 .css 结尾的文件 use: ['style-loader', 'css-loader'] // 使用顺序从右向左依次调用 } ] } }; ``` --- #### 总结 以上便是 Webpack基本配置流程概述。通过合理运用这些基础知识,可以显著提升前端工程化的效率与质量。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值