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技巧
Dec 06 Javascript
javascript div 遮罩层封锁整个页面
Jul 10 Javascript
Js 中debug方式
Feb 07 Javascript
jQuery代码实现表格中点击相应行变色功能
May 09 Javascript
Javascript中arguments对象的详解与使用方法
Oct 04 Javascript
angular+webpack2实战例子
May 23 Javascript
基于Vue开发数字输入框组件
Dec 19 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
May 10 Javascript
react 组件传值的三种方法
Jun 03 Javascript
vue移动端的左右滑动事件详解
Jun 17 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 Javascript
Vue 数据响应式相关总结
Jan 28 Vue.js
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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
基于jquery的商品展示放大镜
2010/08/07 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
angularJS模态框$modal实例代码
2017/05/27 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
教师师德承诺书
2014/03/26 职场文书
对孩子的寄语
2014/04/09 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
2015年企业新年寄语
2014/12/08 职场文书
商务代表岗位职责
2015/02/15 职场文书
二年级作文之动物作文
2019/11/13 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js