vue-cli与webpack处理静态资源的方法及webpack打包的坑


Posted in Javascript onMay 15, 2018

通过Vue-cli进行webpack打包的坑

Vue-cli为Vue项目搭建的脚手架的确很方便,但打包时容易出现空白页,或者对应的静态资源加载不了。  

我是通过将项目/config下的index.js的assetsPublicPath变成'./',变成相对路径,进行解决。

cd vue demo 
 npm run dev //运行程序 
npm run bulid //webpack打包

处理静态资源

你也许会注意到vue-cli与webpack结合的项目中,我们通常会有两个静态资源的路径:src/assets和static/,他们两者的区别是什么呢?本文主要和大家介绍了vue-cli与webpack结合如何处理静态资源,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

打包的资源

为了回答这个问题,我们首先要明白Webpack是如何处理静态资源的。在*.vue组件里,所有的templates和CSS模块都被vue-html-loader和css-loader解析来查找路径URL。

举个例子,在<img src"./logo.png">和背景background: url(./logo.png),”./logo.png”是一个相对路径,会被Webpack当做一个依赖加载。

但是因为logo.png并不是JavaScript,所以如果被当成一个依赖的花,我们需要通过url-loader和file-loader来解析它。这个模板已经为你配置了相应的loader,所以你通常不用担心相对路径的部署问题。

即使这些资源有可能在构建过程中被内联/拷贝/重命名,他们也是源码重要组成部分。这就是为什么我们建议单独在/src文件夹里放置静态资源,如同其他的资源文件夹。

事实上,你都不必把他们全放在/src/assets,你可以根据模块/组件来组织利用他们。比如说,你可以把任一组件放到他们自己的目录,并在该目录下存放静态资源。

资源引入规则

相对路径,比如 ./assets/logo.png会被解析成模块依赖。它们会被一个基于你Webpack输出配置的自动生成URL替代。

没有前缀的路径,比如assets/logo.png,同相对路径,转义成./assets/logo.png

有~前缀的路径。 ~被认为是一个模块请求,同require('some-module/image.png')。根路径,比如/assets/log.png

在JavaScript得到资源路径

computed: {
 background () {
 return require('./bgs/' + this.id + '.jpg')
 }
}

这个资源路径同样会被file-loader处理然后返回处理后的路径。而且Webpack会一次性加载该bgs目录下的所有图片。

“真实的”静态资源

与此相对的,static/中的文件全都不会被Webpack处理。它们将被直接拷贝到目标文件夹,引用这些文件需要使用绝对路径。

总结

以上所述是小编给大家介绍的vue-cli与webpack处理静态资源的方法及webpack打包的坑,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
javascript ie6兼容position:fixed实现思路
Apr 01 Javascript
JavaScript 垃圾回收机制分析
Oct 10 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
javascript基于DOM实现权限选择实例分析
May 14 Javascript
Js实现简单的小球运动特效
Feb 18 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
Mar 29 Javascript
javascript实现获取图片大小及图片等比缩放的方法
Nov 24 Javascript
微信小程序 地图map详解及简单实例
Jan 10 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
Aug 18 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 Javascript
vue键盘事件点击事件加native操作
Jul 27 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 #Javascript
vue中keep-alive的用法及问题描述
May 15 #Javascript
react中使用swiper的具体方法
May 15 #Javascript
vue addRoutes实现动态权限路由菜单的示例
May 15 #Javascript
浅谈AngularJS中$http服务的简单用法
May 15 #Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 #Javascript
解决linux下node.js全局模块找不到的问题
May 15 #Javascript
You might like
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
PHP图片水印类的封装
2017/07/06 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
JS验证身份证有效性示例
2013/10/11 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
python进行两个表格对比的方法
2018/06/27 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
初婚初育证明
2014/01/14 职场文书
消防安全汇报材料
2014/02/08 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
社区服务活动小结
2014/07/08 职场文书
员工年度工作总结2015
2015/05/18 职场文书
委托书范本格式
2019/04/18 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
Spring整合Mybatis的全过程
2021/06/28 Java/Android
nginx配置限速限流基于内置模块
2022/05/02 Servers
如何利用python实现列表嵌套字典取值
2022/06/10 Python