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 相关文章推荐
做网页的一些技巧(续)
Feb 01 Javascript
js 日期转换成中文格式的函数
Jul 07 Javascript
javascript下string.format函数补充
Aug 24 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
Apr 10 Javascript
jquery实现网页查找功能示例分享
Feb 12 Javascript
JavaScript获取flash对象与网上的有所不同
Apr 21 Javascript
js兼容火狐获取图片宽和高的方法
May 21 Javascript
js+div实现文字滚动和图片切换效果代码
Aug 27 Javascript
Javascript json object 与string 相互转换的简单实现
Sep 27 Javascript
实例解析js中try、catch、finally的执行规则
Feb 24 Javascript
layui table 参数设置方法
Aug 14 Javascript
js实现input密码框显示/隐藏功能
Sep 10 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 parse_url 一个好用的函数
2009/10/03 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
jcrop基本参数一览
2013/07/16 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python备份Mysql脚本
2008/08/11 Python
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
python ddt实现数据驱动
2018/03/14 Python
python实现树形打印目录结构
2018/03/29 Python
python requests.post带head和body的实例
2019/01/02 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
js实现弹框效果
2021/03/24 Javascript
初三化学教学反思
2014/01/23 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
关于环保的建议书
2014/05/12 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
会计主管岗位职责
2015/04/02 职场文书
捐书活动倡议书
2015/04/27 职场文书