Webpack综述

WebPack是一个现代Js应用的静态模块打包器,使用Webpack处理应用时,它会递归地构建一个依赖关系图,其中包含了应用所需的各个模块,并将这些模块打包为一个或多个bundle。
Webpack有四个核心概念

  • 入口(Entry)
  • 输出(Output)
  • Loader
  • 插件(Plugins)

入口

它负责指示Webpack使用哪个模块作为构建内部依赖图的起始点,进入起点后,Webpack会找出起点所依赖的模块和库,Webpack中有多种方式来定义起点,例如:

//单个入口(简化)
const config = {
  entry: "./src/main.js"
}
//对象语法
const config = {
  app: "./src/main.js",
  vendors: "./src/vendors.js"
}

输出

output指示webpack在哪里输出它创建的bundle以及如何命名它们,例如:

const config = {
  entry: "./src/main.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, 'dist')
  }
}

loader

loader使得webpack可以处理非js文件(webpack本身只理解js),loader可以将所有文件转换为webpack能够处理的模块,例如在开发时使用ES6,再通过loader转换为ES5,如下配置:

const config = {
  entry: "./src/main.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
          test: /\.js$/,
          exclude: /node_modules/,
          loader: "babel-loader",
          options: [
            presets: ["env"]
          ]
      }
    ]
  }
}

插件

插件的功能则更为强大,可以做包括打包优化、压缩、定义环境变量等事宜,插件配置只需要使用require(),然后再添加到plugins数组中即可,如下所示

// 通过 npm 安装
const HtmlWebpackPlugin = require('html-webpack-plugin');
// 用于访问内置插件 
const webpack = require('webpack'); 
 
const config = {
  module: {
    rules: [
      {
          test: /\.js$/,
          exclude: /node_modules/,
          loader: "babel-loader"
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({template: './src/index.html'})
  ]
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值