webpack学习之webpack概念

webpack是一个现代JavaScript应用程序的静态模块打包器,当webpack处理应用程序时,会递归构建一个依赖关系图,将程序中所需要的每个模块,打包成一个或者多个bundle。

 

webpack有四个核心的概念:

入口entry,

输出output,

loader,

plugins。

 

入口

入口起点是告诉webpack应该使用哪个模块,作为构建程序内部依赖图的开始。

在webpack中是通过配置entry属性,来指定一个入口,也可以是多个。

例子:

const config = {
 
  entry: './path/file.js',
  
}

出口

出口是告诉webpack将打包好后输出的文件放到哪里,也可以命名这些文件。

其中默认的输出路径是/dist.

在webpack中的配置如下:

const config = {
  
  entry: './path/file.js',
  output: {
    path: path.resolve(__dirname, 'dist'), //输出路径
    filename: 'my.bundle.js' //文件名
  },
 
}

loader

loader可以让webpack去处理那些非JavaScript文件,将这些文件转换成webpack可以处理的模块。

本质上,loader会将所有类型的文件转换成应用程序的依赖图可以直接引用的模块。

loader中有两个配置项:

1,test,用于标识文件类型,如css,html,jpg等等。

2,use, 表示用哪个loader来转换标识的文件。

const config = {
  mode: 'development',
  entry: './path/file.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'my.bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.txt$/,  //txt文件
        use: 'raw-loader' //使用raw-loader来转换txt文件
      }
    ]
  }
  
}

插件

插件是更强大的应用,可以执行比loader范围更广更深的任务,从打包到压缩,一直到重新定义环境变量。

可以使用require()来引入插件,并将其配置到plugins数组中。多数插件可以通过option自定义,也可以在一个配置文件中因为不同目的而多次使用同一个插件,这时需要使用new操作符来创建该插件的实例。

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin') //引入html-webpack-plugin插件
const webpack = require('webpack')

const config = {
  mode: 'development', //设置webpack的模式为开发或者生产
  entry: './path/file.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'my.bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.txt$/,
        use: 'raw-loader'
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({template: '/aa.html'}),
    aa
  ]
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值