项目用run dev build 打包后,发现很多图片都不显示,在本地是没有问题的啊!找原因发现通过webpack+vuecli默认打包的css、js等资源,路径都是绝对的。 ?...9E3E9C06-4873-4D1B-A5B3-35C71889249E.png 因为我们的图片路径都是经历过文件夹的,在本地引用图片是绝对路径,但打包后因为把配置的static文件夹当成了根路径,所以很多图片找不到都不显示...修改 assetsPublicPath: './' (2).打开webpack.prod.conf.js,在output:增加 publicPath: './' ?...7822D742-9A09-428A-A270-B5320A809759.png 虽然解决了资源路径的引用问题,但是资源里面的背景图片还是不显示, background: url("../.....images/logo-index.png") no-repeat;被相对打包后变成了url(static/img/logo-index.2fbf2.png) no-repeat所以我们要保留css引用图片的正常路径
今天我们就先看看精简版,后期项目如果不出意外就会在此版本上开发: 开发前准备: node 和 git -项目开发环境 Vite - 熟悉 vite 特性 Vue3 - 熟悉 Vue 基础语法 TypeScript...再说说我之前的项目cops-webpack版是基于vue+webpack+js的前端demo,只是适合入门的小白用,而且当时也没设计什么功能页面,只是为了跑通前后端用的demo,大家用来学习入门也是极好的...https://github.com/cilliandevops/cops-fe-webpack 那么今天我们就来看看我想做的项目,需要什么功能,需求首先要搞清楚,不着急开发: 目前我发现对于后台开发来说有自己的管理平台...我们这里还是按照前辈们总结的流程来: 、 第一步 需求分析和规划 先问自己这个问题:目前我就是自己的客户,我的需求是什么,也就是说客户的痛点是什么,开发这款产品的定位是什么,如何规划自己功能模块、技术方案...功能模块,暂时想到的有: 传统模块: 1、终端模块(批量执行) 2、代理模块(nginx模板、修改重启生效) 3、资产管理(系统安装、部署、资产列表) 4、网络模块(路由管理) 5、认证管理(key管理
/dist/bundle.js"> 需求: 使用 jquery 隔行变色 安装jquery yarn add jquery main.js // 需求...所以webpack如果要处理其他文件类型, 记得要先配置对应的 loader webpack中处理 css 文件 需求: 去掉小圆点, 新建 css 目录 安装依赖 yarn add style-loader...中处理图片 - url-loader 我们试了一下,在css中用到一下背景图片,结果就报错了,难道webpack连图片也认不出来吗?.../src/about.js" }, output: { // 修改输出路径和文件名,[name]是动态的,读取entry的属性 path: path.join...在 src / main.js 中导入插件包 // 导入 rem 的 js, 动态的设置了, 不同屏幕的html根元素的 font-size import 'lib-flexible' 配置 vue.config.js
/images/demo.png"> 这种写法只能引用相对路径下的图片。不能使用绝对路径。使用绝对路径的话,这类资源将会直接被拷贝,而不会经过 webpack 的处理。.../images/demo.png') } } 4、引入**publicPath**并且将其拼接在路径中,实现引入路径的动态变动 webpack 处理。 放置在 public 目录下或通过绝对路径被引用。这类资源将会直接被拷贝,而不会经过 webpack 的处理。...原理 从相对路径导入 当你在 JavaScript、CSS 或 *.vue 文件中使用相对路径 (必须以 . 开头) 引用一个静态资源时,该资源将会被包含进入 webpack 的依赖图中。...当我们基于webpack进行开发时,引入图片会遇到一些问题。 其中一个就是引用路径的问题。
安装vue-cli:npm i -g vue-cli 初始化项目:vue init 这里我选择最简单的template:webpack-simple...例如打包了一个图片放到./dist/img1.jpg,那么响应js中的引用路径变成/dist/img1.jpg。两个参数要配合好。...$时,可以动态替换为对应的字符串。...[ext]' //自动hash命名图片等资源,并修改路径。路径需要根据项目实际情况确定。...语法参考:https://doc.webpack-china.org/loaders/file-loader/ } } 往往图片发布后都是长缓存,
相信用过vue的小伙伴,肯定被面试官问过这样一个问题:在vue中动态的引入图片为什么要使用require 有些小伙伴,可能会轻蔑一笑:呵,就这,因为动态添加src被当做静态资源处理了,没有进行编译,所以要加上...// vue文件中动态引入一张图片 vue中webpack默认的图片打包规则。...答:在webpack编译的vue文件的时候,遇见src等属性会默认的使用require引入资源路径。...引用vue-cli官方的一段原话 当你在 JavaScript、CSS 或 *.vue 文件中使用相对路径 (必须以 . 开头) 引用一个静态资源时,该资源将会被包含进入 webpack 的依赖图中。
同时,webpack还有丰富的插件 plugin,可以完成例如js,css的压缩,公共依赖模块的提取和注入,甚至利用模板对 html 进行动态拼接等功能。...解析 本项目已支持功能 1 对less编译 2 对js es6语法支持 3 编译.vue组件,并自动内联组件样式 4 图片打包,包括对html内图片处理(利用html-loader和es6字符串模板...),对小图片生成base64 5 利用htmlWebpackPlugin动态拼接html 的公共部分和内容部分,引入相应css/js资源,并构建到指定目录, 对ejs模板支持 6 对js内依赖的css.../src/js/lib/vue.min.js'): d:\demo\src\js\lib\vue.min.js getEntry() 为获取文件路径的自定义函数: /***** 获取文件列表:输出正确的...v=[hash:8]' } webpack中处理图片用file-loader,但url-loader有个好处,它可以把小图片转化成base64格式,其他的大图片再用file-loader处理,这里的limit
这里通过环境变量来判断生产环境才启用CDN,除了需要开启CDN外,你还需要在index.html注入CDN的域名,所以我这里通过html-webpack-plugin根据cdn域名动态的注入script...,让url匹配到相应的路径时,会动态加载页面组件,这样首屏的代码量会大幅减少,webpack会把动态加载的页面组件分离成单独的一个chunk.js文件 ?...版本 webpack4相对于webpack3来说在打包优化方面性能提升还是比较明显的,如果觉得自己配置脚手架比较复杂的话,可以使用vue-cli3来构建你的项目,同样是基于webpack4搭建的 DllPlugin...常用的路径创建文件别名 给常用的模块路径创建一个别名是一个不错的选择,可以减少模块查找时耗费的时间,项目越大收益也就越明显 vue-cli3中的配置和使用方法(webpack链式调用文档) ?...并且DOM本身又是一个非常笨重的对象,这里给出几个建议 如果有需要动态创建DOM的需求,可以创建一个文档碎片(DocumentFragment),在文档碎片中操作因为不是在当前文档流不会引起重排/重绘,
编译提速 - Webpack体系优化 首先是Webpack体系,因为我们整体的技术栈分Vue和React两部分,我们会抽一部分基础的跨技术栈的Webpack配置,上层有不同团队分别维护Vue技术栈和React...,在公司内这部分的工作量比较大,像我们的一些SaaS的静态资源的一些路径等,包括之前我们存量Webpack这么多年积累下来的公司基建,我们如何保证它能被注入到Vite端,包括组件库按需引入,当一些模块比如...| 2.2 演变路径 第一阶段的时候是强依赖Webpack和Vue技术栈的。...第三阶段是动态分析结合AST静态分析一起去做,在数据采集阶段通过构建工具的模块工厂钩子、Vue/React实例化对象的路由/数据流配置去生成依赖图结构,通过recast等工具进行静态解析,不用Babel...(框架有相对严格的资产生产结构规范,可以提升下游编码时资产消费准确率);通过知识库问答降低技术项目的客服成本等。
来张图就明白了 看到这个就没啥好意外了,为什么会这么慢。...因为说明文档的 webpack 配置没用 vue-cli 脚手架,自己手动配置的,所以问题估计会多些吧 1)webpack 配置出错,导致库重复被编译到一个文件里 逐步检查了编译后比较大的文件,发现 index.js...如下图 一句句排查 webpack 配置,没有发现问题,那么到底问题出在哪里呢,搜索了下 vue 的引入,发现有 3 个文件有引入 vue ,但是这并不影响编译重复啊,不应该的,最后终于发现了问题,由于是...探究了一番,因为是异步加载,所以不能动态传值的, map 遍历的时候路径组合 x 值是动态传入,导致打包后无法识别。最后修改为静态的,问题解决了。...重新编译后多个页面路由分割成单个 js 文件,每个约 10kb 左右,路由改变时,动态加载对应的 js 文件 import xx from '/dev/test‘ //这里的abc 是静态的值 如
三、安装webpack模板 Webpack 是一个模块打包工具,主要用于将各种前端资源(如JavaScript、CSS、图片等)打包成一个或多个静态文件,以便于浏览器加载。...自动化任务: Webpack 提供了强大的插件系统,可以自动执行各种任务,例如代码压缩、图片优化等。...,类似于上面的环境变量设置,我们依然是往系统变量的path里添加我们webpack的安装路径,我们先查看安装路径。...看到webpack的安装路径是:C:\Program Files\nodejs\node_global\node_modules 接着我们添加环境变量: 然后我们检查webpack是否安装成功,命令行输入...动态路由匹配: 支持通过参数匹配路由,使得在URL中的某一部分可以作为参数传递给组件。
axios/0.18.0/axios.min.js"> 路由动态引用...图片 VueCli 在 Vue 项目中,可以通过 vue.config.js 中的 chainWebpack 配置来设置图片转 Base64 的大小限制。...WebPack 安装url-loader npm i url-loader@4.1.1 file-loader@6.2.0 -D 在webpack.config.js中添加处理url路径的loader模块...[ext]' // [hash:8] 在名称前面设置8位哈希值,[name] 设置文件的原名, [ext] 设置文件的原后缀 } }] },// 处理 图片路径的 loader 对比 file-loader...此外,这意味着 你可以就近管理图片文件,可以使用相对路径而不用担心部署时 URL 的问题。使用正确的配置,webpack 将会在打包输出中自动重写文件路径为正确的 URL。
搭建 Vue 开发环境 vue-cli 集成了 vue 和 webpack,但还是有必要掌握如何用 webpack 搭建一个基础的 Vue 开发环境。...html 的插件 npm html-webpack-plugin -D // 安装 vue(默认安装 vue2,vue@next 可以安装 vue3) npm i vue --save // 安装...另外,必须安装 html-loader 和 css-loader,webpack 才能正确解析别名路径对于资源的引用。...resolve.modules 指定 webpack 去哪些路径下查找模块,默认会从项目根目录开始找,找不到就往外层找。...经由 file-loader 处理后,最后产出的 bundle 中只包含雪碧图这一张图片。 这里需要注意,spritePath 配置的是雪碧图的存放路径。
•安装vue-cli:npm i -g vue-cli •初始化项目:vue init 这里我选择最简单的template:webpack-simple...例如打包了一个图片放到./dist/img1.jpg,那么响应js中的引用路径变成/dist/img1.jpg。两个参数要配合好。...resolve的alias目的是做一个别名映射,当代码中出现vue$时,可以动态替换为对应的字符串。 devServer控制webpack自带的热更新服务器的行为,例如修改一下端口。...实际项目的一些优化 >创建多页面 如图所示 >webpack多entry配置 主要是filename使用了动态的配置方式,会根据entry的key映射。...图片打包文件名管理 往往图片发布后都是长缓存,那么在文件名中加入hash做版本区分是个好方式。另外,使用独立的目录,更方便cdn设置缓存时间。
js 目录纯粹化:由于 webpack.common.js 里是动态获取 entry 和动态加载 HtmlWebpackPlugin,所以 js 文件夹下的文件都会加进去并且被相应的 html 引用,所以不需要加进去的...[ext]' }] } ] 需要稍微注意一点的是处理图片的 loader 以及图片的引用方式。...url-loader 中的 limit = 1,代表大小小于 1kb 的图片地址会被转化成 base64 的 url;html-loader 是为了处理 html 中的图片地址;js 中的图片需要通过...webpack.common.js 是公共配置文件,里面是本地、测试和线上都需要的配置,包括动态入口和出口、处理html、css、js、图片等需要的 loader、提取公共文件、配置别名等; webpack.dev.js...", "vue-router": "^3.0.1", "vue-template-compiler": "^2.5.16" } } webpack.common.js const path
上一篇中也提到了我们开源项目的需求,第一步项目需求确定后那么就开始我们的下一步计划。 第二步:架构的设计 怎么个架构设计,就是对技术架构、业务架构的设计。...从资源管理、任务管理、告警规则、权限管理、用户管理、日志收集等 4、中间件用redis用于缓存和消息队列、kafaka用于日志收集 5、部署用docker+k8s 业务架构设计: 传统模块:终端、机器资产...3、vite构建的包体积小,webpack相比vite构建的包文件会更大一些。 4、vite轻量级高性能,能提升开发体验和构建性能。Webpack生态丰富性和功能集成度上处于领先位置。...所以这么一比较的话,两者都是可以根据需求灵活选择结合使用。...│ │ └── svg # 项目存放svg图片的文件夹 │ ├── components # 公共组件 │ ├── design # 样式文件 │ ├── directives # 指令
3. webpack和rollup这两个什么区别, 你会怎么选择 Webpack 和 Rollup 有以下区别: 我会根据项目需求来选择。...功能:Webpack 提供了丰富的插件系统,可以处理多种类型的资源,如图片、样式表等。Rollup 则更专注于 JavaScript 的打包,插件较少。...模块解析:Webpack 解析每个模块的路径和依赖关系。 打包:Webpack 将所有模块打包成一个或多个 bundle。 输出:最后,Webpack 将打包后的文件输出到指定的目录。...这些经验帮助我更好地理解了 Webpack 的工作原理,并能够根据项目需求进行定制化处理。 6. webpack这块你平时做过哪些优化吗?...图片优化:使用适当格式的图片,如 WebP,以及压缩图片大小。 缓存利用:利用 HTTP 缓存,减少重复资源的加载。 CSS/JS 文件压缩:通过压缩工具减小文件体积。
(当然也存在都要进行打包的情况,比如新增需求等等) 2、每个子系统可独立发挥团队中每个人的优势,使用自己熟悉的框架进行快速开发。...) 2、webpack-app 微应用开发环境启动后的访问地址 http://localhost:4000 使用 Vue3 + webpack + Element Plus 搭建 引用自己封装的组件...aehyok-form-vue3 进行demo页面的初始化,包括动态form表单和动态table列表,以及json阅读器 根据json配置对象直接生成动态form表单,目前已经完成基本架构,待有时间继续完善细节...(qiankun乾坤共享组件这块还不成熟,可参考webpack5中联邦模块 Module Federation) 动态form表单生成器(已单独抽离到npm发包,具体可查看aehyok-form-vue3...#主应用 "/e/work/aehyok/github/vue-qiankun/webpack-app" # webpack-app 子应用 "/e/work/aehyok
环境准备 # vue + vue-cli # npm i vue -g # npm i vue-cli ## i/install ## -g/-global ## --save/-S = dependencies...## --save-dev = devDependencies npm i @vue/cli -g # initialization I vue ui ## version issue = vue-cli...> 3.0+ vue -V / -h npm i --upgrade @vue/cli -g # initialization II npm i webpack -g vue init webpack...npm run build (dist) npm install -g serve serve dist # deployment II # 1、package.js -> scripts 命令 # 2、webpack.dev.conf.js.../',即“/”前加点 # 4、npm run build # 5、点击index.html,通过浏览器运行便, # 6、动态绑定的static的图片找不到,static必须使用绝对路径 跳到业务后台/管理框架
npm install --save-dev vue-cli-plugin-dll 接下来就是dll的相关配置,将我们项目中的依赖使用dll插件进行动态链接,这样依赖就不会进行编译,从而极大地提高编译速度...inject: true, } } } 配置好之后然后运行,进行你上面配置插件动态链接库的编译 npx vue-cli-service dll dll编译完成后会在上面配置的目录下生成dll...安装 npm install --save-dev hard-source-webpack-plugin 配置vue.config.js 为模块提供中间缓存,缓存路径是:node_modules/.cache...Vue-Cli默认已进行了如下配置 noParse: /^(vue|vue-router|vuex|vuex-router-sync)$/ 配置 // 定义getAliasPath方法,把相对路径转换成绝对路径...== "production", //打包不生成map文件 } 图片压缩 image-webpack-plugin 对图片像素要求没很极致的,这个压缩还是可以使用的,压缩率肉眼看起来感觉是没太大区别。
领取专属 10元无门槛券
手把手带您无忧上云