美文网首页Webpack教程入门
打包工具之Webpack(二):各部分配置

打包工具之Webpack(二):各部分配置

作者: wsgdiv | 来源:发表于2020-11-30 00:26 被阅读0次

'''
const path = require('path');
module.exports = {
entry:'./main.js', //执行文件入口
output:{
filename:'bundle.js',
path:path.resolve(__dirname,'./dist'), //输出文件存放地址
},
module:{
rules:[
{
test:/.css$/, //正则匹配所需css文件
use:['style-loader','css-loader?minimize'], //从右往左,且压缩。需安装插件npm i -D style-loader css-loader
}
]
},
plugins:[ //注入钩子,增加功能
]
};
'''
先把案例放在这里以供参考

1、Entry

在entry前面,可以加一个context:path.resolve(__dirname,'app')作为基础路径,文件中其他路径将以此为基准,所以必须是绝对路径,也可以用 --content来设置。

entry可以是字符路径、数组(多个字符路径)[这两种情况只有一个Chunk,此时名称是main]、对象(键值对,字符路径和数组可同时存在,因为有多个入口,即多个Chunk, 其名称为键名)

2、Output

output是一个对象
chunkFilename配置无入口的Chunk在输出时的文件名称
publicPath配置发布到线上资源的URL前缀
crossOriginLoading配置异步插入标签的crossorigin值

libraryTarget以何种方式导出库
library导出库名称

libraryExport配置要导出的模块中需要导出的子模块,只在libraryTarget被设置成commonjs/2时才有意义。

3、Module

loader——用test(正则筛选)、include(只命中)、exclude(排除)来配置,通过use配置从右向左执行。【cacheDirectory用于缓存babel的编译结果;enforce:pre/post执行顺序最前/最后】
noPase——忽略没采用模块化的文件,故不可含有import/require/define等模块化语句
parser——配置具体解析控制

4、Resolve

作用:寻找
alias——对象,映射新的路径,xxx$命中结尾关键字
mainFields——当针对不同环境生成多份代码时,决定优先采用哪份代码
extensions——配置尝试的后缀
modules——配置去哪里寻找第三方模块
descriptionFiles——配置描述第三方模块的文件名称,即:package.json

enforceExtension——为true时,所有文件必须带后缀
enforceModuleExtension——布尔,只对node_modules下的模块生效

5、Plugin

钩子

6、DevServer

hot
inline——是否将代理客户端自动注入将运行在页面中的Chunk,默认自动注入
historyApiFallback——布尔/正则,返回指定页面,用于单页应用
contentBase——服务器文件根目录
headers——对象,在http响应中注入HTTP响应头
host——配置服务器监听地址
port——端口
allowedHosts——白名单
disableHostCheck——是否关闭host检查
https——使用https服务
clientLogLevel——配置客户端的日志等级(none、error、warning、info)
compress——是否启用Gzip压缩
open——DevServer启动且第一次构建完时,自动用默认浏览器打开,且提供了openPage配置打开指定url的网页

7、其他配置

target——构建出针对不同运行环境的代码
devtool——值:source-map,默认是false
watch及watchOptions(监听控制):ignored、aggregateTimeout、poll
externals——不被打包的文件
resolveLoader——如何寻找Loader

相关文章

网友评论

    本文标题:打包工具之Webpack(二):各部分配置

    本文链接:https://www.haomeiwen.com/subject/crzkwktx.html