Webpack5随笔

webpack5

asset module type 资源模块类型 可以代替file-loader 、url-loader

webpack常用的loader

less-loader

css-loader

style-loader

postcss-loader

file-loader 可打包iconfont

url-loader 可转base64

常用plugin

clean-webpack-plugin 删除文件夹

html-webpack-plugin 生产html文件

copy-webpack-plugin 复制public文件夹

配置babel

bable-core

babel-loader presets

.babel.config.json配置文件

babel 执行阶段:解析parseing 转换transformation 代码生成Code Generation 目标源代码

环境

mode:‘development’和’production’

分离

建config文件夹

指定文件

“scripts”:{
	build:'webpack --config ./config/webpack.prod.config.js',
    serve:'webpack serve --config ./config/webpack.dev.config.js'
}

最后一个公共的config用webpack-merge

设置sourcemap

devtool:'source-map'

出口入口

entry

entry:'./src/main.js'

output

const path = require('path')
output:{
    path:path.resolve(__dirname,"./build"),
    filename:'js/bundle.js'
}

打包单文件

vue-loader@next

@vue/compiler-sfc

const { VueLoaderPlugin } = require('vue-loader/dist/index')

两个标识

设置options api :

new DefinPlugin(
	{
        __VUE_OPTIONS_API__:true,
        __VUE_PROD_DEVTOOLS__:false
    }
)

webpack-dev-server

将bundle文件保存到了内存里

事实上使用了一个库memfs(memory-fs webpack自己写的)

HMR热模加载

target:'web',
dvServer:{
	contentBase:'./public',
	hot:true,
    host:'0.0.0.0',//可以让别的电脑看到自己电脑
    port:'7777',
    open:true,
    compress:true,//gzip格式压缩 -- Content-Encoding:gzip
    proxy:{
        secure:false,
        changeOrigin:true
    }
}
if(module.hot){
	module.hot.accept('./js/element.js',()=>{
		console.log('element模板热更新了')
	})
}

解决方案:

vue-loader

react-refresh (react-hot-loader已经被弃用了)

原理:

WDS创建两个服务:提供静态资源的服务expresssocket服务

historyApiFallback

resolve

基于enhence-resolve来解析文件路径

resolve:{
	modules:['node_modules'],
    extensions:['.js','.json'],
    alias:{
        '@':path.resolve(__dirname,"./src")
    }
}

Vite

基于ESBuild、更快
ESBuild由go编写、直接转为机器码

预打包等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值