webpack单入口和多入口配置

本文详细介绍了Webpack配置文件webpack.config.js的基本结构及使用方法,包括入口文件(entry)、出口文件(output)、模块(module)、插件(plugins)和开发服务功能(devServer)等关键配置项。
摘要由CSDN通过智能技术生成

配置文件

webpack.config.js就是Webpack的配置文件,这个文件需要自己在项目根目录下手动建立。建立好后我们对其进行配置,先看下面的代码(webpack.config.js的基本结构),这是一个没有内容的标准webpack配置模版。

webpack.config.js

 module.exports={
    //入口文件的配置项
    entry:{},
    //出口文件的配置项
    output:{},
    //模块:例如解读CSS,图片如何转换,压缩
    module:{},
    //插件,用于生产模版和各项功能
    plugins:[],
    //配置webpack开发服务功能
    devServer:{}
}

entry:配置入口文件的地址,可以是单一入口,也可以是多入口。
output:配置出口文件的地址,在webpack2.X版本后,支持多出口配置。
module:配置模块,主要是解析CSS和图片转换压缩等功能。
plugins:配置插件,根据你的需要配置不同功能的插件。
devServer:配置开发服务功能

entry选项

这个选项就是配置我们要压缩的文件一般是JavaScript文件(当然也可以是CSS…..)。

wepback.config.js中的entry选项

//入口文件的配置项
entry:{
    //里面的entery是可以随便写的
    entry:'./src/entry.js'
},

output选项

出口配置是用来告诉webpack最后打包文件的地址和文件名称的。

//出口文件的配置项
output:{
    //打包的路径
    path:path.resolve(__dirname,'dist'),
    //打包的文件名称
    filename:'bundle.js'

},

如果你只这样写,是会报错的:找不到path这个东西。所以我们要在webpack.config.js的头部引入path,代码如下:

const path = require('path');

其实path.resolve(__dirname,’dist’)就是获取了项目的绝对路径。

filename:是打包后的文件名称,这里我们起名为bundle.js。

现在webpack.config.js的代码:

const path = require('path');
module.exports={
    //入口文件的配置项
    entry:{
        entry:'./src/entry.js'
    },
    //出口文件的配置项
    output:{
        //输出的路径,用了Node语法
        path:path.resolve(__dirname,'dist'),
        //输出的文件名称
        filename:'bundle.js'
    },
    //模块:例如解读CSS,图片如何转换,压缩
    module:{},
    //插件,用于生产模版和各项功能
    plugins:[],
    //配置webpack开发服务功能
    devServer:{}
}

这个代码写完后,可以在终端中直接输入webpack就会进行打包。

在实际开发中我们都是通过配置文件进行打包的,所以必须要掌握好。

多入口、多出口配置

Webpack在版本1的时候很难设置多出口文件,但是在2版本开始就变的很方便了。直接看多入口和多出口的文件配置,然后可以和单一出口对比一下,你会发现这种设置非常简单(只需改动两点配置就可以)。

const path = require('path');
module.exports={
    //入口文件的配置项
    entry:{
        entry:'./src/entry.js',
        //这里我们又引入了一个入口文件
        entry2:'./src/entry2.js'
    },
    //出口文件的配置项
    output:{
        //输出的路径,用了Node语法
        path:path.resolve(__dirname,'dist'),
        //输出的文件名称
        filename:'[name].js'
    },
    //模块:例如解读CSS,图片如何转换,压缩
    module:{},
    //插件,用于生产模版和各项功能
    plugins:[],
    //配置webpack开发服务功能
    devServer:{}
}

可以看到代码,在入口文件配置中,增加了一个entry2.js的入口文件(这个文件你需要自己手动建立),这时候要打包的就有了两个入口文件。我们把原来的bundle.js修改成了[name].js。

[name]的意思是根据入口文件的名称,打包成相同的名称,有几个入口文件,就可以打包出几个文件。

原文:https://segmentfault.com/a/1190000011333071

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值