webpack配置整理

通过定义配置文件进行复杂操作,文件名webpack.config.js

一个配置文件的基本结构:

entry,入口定义入口文件,默认文件./src/index.js

output,输出定义出口文件,默认文件./dist/main.js

resolve,解析路径映射,省略后缀名等

module,模块定义不同loader,让webpack能够处理非JavaScript模块

plugins,插件扩展webpack功能

devServer,开发服务器用于配置webpack-dev-server选项

简单的配置文件

hello wrold例子:

修改webpack.json文件

配置详细entry和output

entry入口配置是指页面中的入口文件,默认入口文件./src/index.js

output出口配置是指生成的文件输出到哪个地方去,./dist/main.js

path,输出路径,filename,输出文件名

module,webpack只能打包js文件,无法识别其他语法的文件,如果要让webpack打包其他文件,首先需要让webpack识别不同的文件。

loader分类

分类说明

转换编译

script-loader,babel-loader,ts-loader,coffee-loader

处理样式

style-loader,css-loader,less-loader,sass-loader,postcss-loader

处理文件

raw--loader,url-loader,file-loader

处理数据

csv-loader,xml-loader

处理模板语言

html-loader,pug-loader,jade-loader,markdown-loader

清理和测试

mocha-loader,eslint-loader


 

常用loader

loader

说明

css-loader

解析css语句

style-loader

将css-loader解析后的文本,添加<style>标签

babel-loader

将ES6+、JSX语法转成ES5低版本语法

url-loader

url-loader对未设置或者小于limit byte设置的图片以base64的格式进行转换<br />对于大于limit byte的图片用file-loader进行解析

file-loader

解析项目中的url引入(包括img的src和background的url)<br />修改打包后文件引用路径,使之指向正确的文件

less-loader

less编译器

vue-loader

Vue也推出了自己的vue-loader,可以方便的打包 .vue文件 的代码。<br />在vue-cli(快速构建单页应用的脚手架)中得到应用。

 

 

 

 

 

 

 


babel loader

babel是一个js编译器,它是通过语法转换器支持最新版本的JavaScript,这插件允许你使用新语法,无需等待浏览器支持。

使用babel首先要配置.babelrc文件,该文件用来设置转码规则和插件,存放在项目的根目录下。

在linux系统中,rc结尾的文件通常代表运行时自动加载的文件、配置等等。

在.babelrc配置文件中,主要是对预设和插件进行配置。

配置项

说明

presets

预设 对js最新的语法糖进行编译,并不负责转译新增的api和全局对象。例如:let/const可以被编译,而String.includes、Object.assign等对象新增方法并不能被编译。<br />常用转译器:babel-preset-env、babel-preset-es2015(2016、2017)、babel-preset-latest等

plugins

插件 控制如何转换代码,babel默认只转换新的js语法,而不转换新的API,比如 Set,,Maps,Symbol,Promise 等全局对象,transform-runtime 用来解决以上问题

 

webpack在启动后会从配置的入口模块触发,找出所有依赖的模块,默认会采用模块化标准里约定号的规则去寻找。

属性说明
alias

(译:别名)通过别名将原来导入路径映射成一个新的导入路径

extensions

(译:扩展)数组 导入模块时,可以省略的文件后缀名

 

 

 

其他配置

配置项

说明
devtool

是否生成以及如何生成sourcemap

devserver

开启一个本地开发服务器

watch

监听文件变化并自动打包

watchoption

用来定制watch模式的选项

performance

打包后命令行如何展示性能提示,如果超过某个大小是警告还是报错


 

 

 

 

 

webpack-dev-server

它是一个小型的web服务器,可以自动监视项目文件的变化,自动刷新浏览器,其HMR方式只替换更新的部分,而不是重载页面,大大提高了刷新效率

配置项

说明

默认值

inline

自动刷新<br />当我们对业务代码做了一些修改,保存(ctrl+s)后,页面会自动刷新,所做的修改会直接同步到页面上,不需要手动刷新页面或重启服务

true
hot

热模块替换<br /> 不用配置(通常是通过命令行 --hot 选项启动,会自动加载webpack.HotModuleReplacementPlugin插件)

true
host

主机地址

 
open

自动打开浏览器,可以指定浏览器,例如:--open 'Chrome'

false

port

端口

默认8080

overlay

编译出错的时候,在浏览器页面上显示错误

false
stats

用来控制编译的时候shell上的输出内容<br />stats: "errors-only" 只打印错误<br /> 还有"minimal","normal","verbose"

 
false

true:对所有服务器资源采用gzip压缩

false
contentBase

指定了服务器资源的根目录,<br />如果不写入contentBase的值,那么contentBase默认是项目的目录

"./"

historyApiFallback

它使用的是HTML5 History Api,任意的跳转或404响应可以指向 index.html 页面

true

 

 



 



 

 

 

 

 

例子:

运行

npm start

运行后,webpack-dev-server将开始运行,打开浏览器,直接输入127.0.0.1:8080/index.html,打包后的页面已经可以使用了

注意:

index.html内无需引入main.js文件,打包后的index.html文件中会自动引入该文件。

webpack-dev-server运行后,浏览器中输出的页面,都是运行在内存中的,只有build以后,才会在dist目录中得到最终的结果文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值