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 相关文章推荐
初学prototype,发个JS接受URL参数的代码
Sep 25 Javascript
Draggable Elements 元素拖拽功能实现代码
Mar 30 Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
当前页禁止复制粘贴截屏代码小集
Jul 24 Javascript
将json当数据库一样操作的javascript lib
Oct 28 Javascript
js实现分割上传大文件
Mar 09 Javascript
JavaScript实现简单Tip提示框效果
Apr 20 Javascript
vue.js的提示组件
Mar 02 Javascript
vue项目开发中setTimeout等定时器的管理问题
Sep 13 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 Javascript
vue+canvas实现拼图小游戏
Sep 18 Javascript
一百多行代码实现react拖拽hooks
Mar 23 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实现文件下载实例分享
2014/06/02 PHP
php中执行系统命令的方法
2015/03/21 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
python3.6的venv模块使用详解
2018/08/01 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
explicit和implicit的含义
2012/11/15 面试题
解决方案设计综合面试题
2015/08/31 面试题
学习标兵获奖感言
2014/02/20 职场文书
班主任自我评价范文
2015/03/11 职场文书
男人帮观后感
2015/06/18 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
如何用python反转图片,视频
2021/04/24 Python
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript