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 相关文章推荐
网页前端优化之滚动延时加载图片示例
Jul 13 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
Jan 20 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
JavaScript Promise 用法
Jun 14 Javascript
AngularJS下对数组的对比分析
Aug 24 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
微信小程序五星评分效果实现代码
Apr 06 Javascript
javascript数据结构之串的概念与用法分析
Apr 12 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
JavaScript中isPrototypeOf函数
Nov 07 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
NOT NULL 和NULL
2007/01/15 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
Python变量类型知识点总结
2019/02/18 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
外贸业务员的岗位职责
2013/11/23 职场文书
师范学院教师自荐书
2014/01/31 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
单位综合评价意见
2015/06/05 职场文书
个人更名证明
2015/06/23 职场文书
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python