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 相关文章推荐
dojo 之基础篇
Mar 24 Javascript
js 获取服务器控件值的代码
Mar 05 Javascript
jQuery对象和DOM对象使用说明
Jun 25 Javascript
原生js编写autoComplete插件
Apr 13 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
Vue+Vux项目实践完整代码
Nov 30 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
Dec 25 Javascript
解析vue data不可以使用箭头函数问题
Jul 03 Javascript
微信小程序实现转盘抽奖
Sep 21 Javascript
React中的Context应用场景分析
Jun 11 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
德劲1103的维修打理经验
2021/03/02 无线电
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
PHP设计模式之观察者模式定义与用法分析
2019/04/04 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
jQuery 表格工具集
2010/04/25 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
Python实现定时任务
2017/02/08 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Python连接phoenix的方法示例
2017/09/29 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
大学毕业寄语大全
2014/04/10 职场文书
小学二年级评语
2014/04/21 职场文书
户籍证明书标准模板
2014/09/10 职场文书
转让协议书范本
2014/09/13 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
技术员个人工作总结
2015/03/03 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers