【webpack】打包一个vue应用
Tag: 学习
webapck
打包一个vue应用最方便的还是使用官方提供的vue-cli应用,但是,从长远来说,这不利于我们自身的成长;
所以让我们暂时忘却vue-cli,基于webpack,从头一点一点去整合出一个webpack打包配置来;
目标
- 打包一个vue应用,可本地运行调试,可打线上包
前期准备
学习资料
webpack核心概念
- Entry:入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。
- Module:模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。
- Chunk:代码块,一个 Chunk 由多个模块组合而成,用于代码合并与分割。
- Loader:模块转换器,用于把模块原内容按照需求转换成新内容。
- Plugin:扩展插件,在 Webpack 构建流程中的特定时机注入扩展逻辑来改变构建结果或做你想要的事情。
- Output:输出结果,在 Webpack 经过一系列处理并得出最终想要的代码后输出结果。
运行环境
node-v16.9.1
vue-cli(用于生成一个vue基本工程)
依赖版本相关
“webpack”: “^5.64.1”,
“webpack-cli”: “^4.9.1”,
技术选型
开发语言 ( JS (ES5/ES6+) or TS )
使用ES6,借助Babel
css预处理器 ( Less (.less) | Sass (.scss/.sass) | Stylus(.stylus/.styl) | Postcss )
使用Less
一个空vue工程
1 |
|
一切准备就绪,下面开始进入正题
基础依赖及配置
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
至此webpack相关基本配置已完成
开始执行打包命令:
1 |
|
报错了,大概意思是.vue文件它不能识别,需要借助相关loader处理
loader配置
vue-loader
1 |
|
又报错了,这次是识别不了图片和css样式,得,继续配置loader
css-loader / url-loader
1 |
|
说明
css-loader 会找出 CSS 代码中的 @import 和 url() 这样的导入语句,告诉 Webpack 依赖这些资源。同时还支持 CSS Modules、压缩 CSS 等功能。处理完后再把结果交给 style-loader 去处理。
style-loader 会把 CSS 代码转换成字符串后,注入到 JavaScript 代码中去,通过 JavaScript 去给 DOM 增加样式。
这里使用的vue-style-loader是fork了style-loader的源代码,对vue文件做了一些定制化处理。
总结
- 熟悉并实践了一下webpack的基本配置
- 使用vue-loader加载.vue单文件
- 使用css-loader/vue-style-loader加载.css文件
- 使用url-loader加载图片资源文件
其他未解决问题(后续再更新):
- css预处理文件处理 ,比如less (less-loader)
- ES6转ES5语法 (babel-loader)
- 本地运行一个服务并支持热更新 (wepack-dev-server)
- 字体等文件的加载 (url-loader)
- 视频等文件的加载 (url-loader)
- 其他实用的功能(比如vue支持jsx的写法)
- 线上打包的优化等等
【webpack】打包一个vue应用
https://happydemoney.github.io/hexo-blog/2022/10/12/webpack-package/