webpack的认识与基本使用

webpack概念

  • webpack 是一个流行的前端项目构建工具,可以解决目前web开发的困境。
  • webpack 提供了模块化支持,代码压缩混淆,解决js兼容问题,性能优化等特性,提高了开发效率和项目的可维护性

5个基本配置

模式(mode)

  • 配置模式以启用相应的 webpack 内置的优化
module.exports = {
  mode: 'development ' // production 生产或开发模式
}

入口 (entry)

  • 用来告诉 webpack 哪些模块或库需要打包,可以指定一个或多个入口( 以对象形式 ),默认 ./src
const { resolve } = require('path')
// 用于分离程序与第三方库的入口
module.exports = {
  entry: {
	app: resolve('src/index.js'),
	vendors: resolve('src/vendors.js)'
  }
}

出口(output)

  • 告诉 webpack 在哪输出所打包的文件,以及如何命名这些文件,接收值为对象,默认值 ./dist
// path 目标输出目录的绝对路径
// filename 用于输出文件的文件名
module.exports = {
  output: {
    path: resolve('dist'),
    filename: 'bundle.js'
  }
}
  • 如果配置了多个入口,要确保每个文件名称唯一
module.exports = {
  entry: {
	app: resolve('src/index.js'),
	vendors: resolve('src/vendors.js)'
  },
  output: {
    path: resolve('dist'),
    filename: '[name].js'
  }
}
// 生成 ./dist/app.js, ./dist/vendors.js

loader

  • 因为 webpack 自身只能处理 js 相关的文件,loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,再进行打包
  • 使用相应的 loader 先要安装对应的 loader包,例 npm i style-loader
    • test 用于标识出应该被对应的 loader 进行转换的某个或某些文件
    • use 表示进行转换时,应该使用哪个 loader

tips: loader 的调用顺序是从后往前

module.exports = {
  module: {
    rules: [
      { test: /\.css$/, use: ['style-loader', 'css-loader', 'postcss-loader'] },
      { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
      { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
      { test: /\.(png|jpg|gif)$/, use: ['url-loader?limit=18888'] },  // limit 设置文件上传的最大值
      { test: /\.js$/, use: ['babel-loader'], exclude: /node_modules/ }, // exclude 排除项 排除路径包含/node_modules/的js文件
      { test: /\.vue$/, use: ['vue-loader'] }
    ]
  }
}
  • js 高级语法,webpack 也不默认支持,需要使用babel转化为兼容的js代码
    • 安装babel转换器
      npm install babel-loader @babel/core @babel/runtime -D
    • 安装babel语法插件包
      npm install @babel/preset-env @babel/plugin-transform-runtime @babel/plugin-proposal-class-properties -D
    • 配置 babel.config.js文件
module.exports = {
  presets: ['@babel/preset-env'],
  plugins: ["@babel/plugin-transform-runtime", "@babel/plugin-proposal-class-properties"]
}

插件(plugins)

  • 可以用来处理各式各样的任务,功能极其强大,不仅限于压缩打包模块
// 默认预览页
const HTMLPlugin = require('html-webpack-plugin')
const htmlPlugin = new HTMLPlugin({
  template: resolve('src/index.html'),
  // url 预览页名
  filename: 'index.html'
})

module.exports = {
  plugins: [htmlPlugin]
}

配置自动打包

  • 默认情况下,我们更改入口js文件的代码,需要重新运行命令打包 webpack,才能生成出口的js文件,那么每次都要重新执行命令打包
  • 安装自动打包功能的包 npm install webpack-dev-server -D
  • 修改 package.json
"scripts":{
  // --open 自动打开网页 
  "dev": "webpack-dev-server --open --host 127.0.0.1 --port 8888"
}
  • 运行 npm run dev

打包发布项目

  • 配置 package.json
"scripts":{
  "build": "webpack -p"
}
  • npm run build
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Webpack是一个现代化的前端构建工具,它可以帮助开发者将多个模块打包成一个或多个最终的静态资源文件。下面是Webpack的配置和基本使用方法: 1. 安装Webpack:可以通过npm或者yarn安装Webpack。在命令行中执行以下命令: ``` npm install webpack webpack-cli --save-dev ``` 2. 创建Webpack配置文件:在项目根目录下创建一个名为`webpack.config.js`的文件,该文件是Webpack的配置文件。 3. 配置入口和出口:在`webpack.config.js`中配置入口和出口。入口是指Webpack开始构建的入口文件,出口是指Webpack构建后生成的输出文件。例如: ```javascript // webpack.config.js const path = require('path'); module.exports = { entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' } }; ``` 4. 配置加载器(Loaders):Webpack支持使用加载器来处理各种类型的文件,例如将ES6代码转换为ES5、将SCSS转换为CSS等。可以在`webpack.config.js`中配置加载器。例如,使用Babel加载器处理ES6代码: ```javascript // webpack.config.js module.exports = { // ... module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader' } } ] } }; ``` 5. 配置插件(Plugins):Webpack还支持使用插件来进行更高级的功能扩展。可以在`webpack.config.js`中配置插件。例如,使用HtmlWebpackPlugin插件生成HTML文件: ```javascript // webpack.config.js const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { // ... plugins: [ new HtmlWebpackPlugin({ template: './src/index.html' }) ] }; ``` 6. 运行Webpack:在命令行中执行以下命令来运行Webpack构建项目: ``` npx webpack ``` 以上是Webpack基本配置和使用方法,你可以根据自己的需求进行更详细的配置和使用。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值