博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack再入门,说一下那些不入流的知识点
阅读量:6810 次
发布时间:2019-06-26

本文共 1535 字,大约阅读时间需要 5 分钟。

先说说Vue-Cli(Vue项目脚手架)

关于它能干什么,就不再赘述了,我们主要谈谈生成的与webpack相关的项目结构:

图片描述

大体上就分三层(当然随着你在生成项目配置的参数不同,项目结构可能会有不同),首先package.json里面的devDependencies属性里,包含了构建这个项目webpack所需要的各种依赖node包和执行项目的快捷指令配置,build文件夹是一些和webpack相关的配置,而config是一些和项目相关的配置,关于这两个文件下每个文件具体是干啥的,可以看下,我只简单说明一下,在执行命令时,这些文件是怎么组合在一起使用的,也可以理解成执行顺序,可以粗略看看:

图片描述
所以我们知道,Vue-Cli之所以便捷,因为他启用了可配置参数来初始化一个项目,至于为什么要将我们通常的一个webpack.config.js能完成的事情写到2个文件夹12个文件来完成,大概就是传说中的模块化吧,鬼知道呢?

关于打包时资源路径的配置

assetsSubDirectory:资源子目录,指js,css,img存放的目录,其路径相对于index.html

比如我将其配置成:assetsSubDirectory:''和assetsSubDirectory:'static',从下面的图,你应该就可以直观感受配置assetsSubDirectory这个路径的区别了。多说一句,此时index.html中js,css的资源路径是这样的:script type=text/javascript src="/static/js/manifest.js?v=8cca728d">,注意/static/
clipboard.png
assetsPublicPath:资源目录,默认是这样配置的assetsPublicPath: '/',指assetsSubDirectory目录也就是js,css,img等资源相对于服务器host地址,传说中的绝对路径,host是什么,ip地址加端口号,比如,其host指的就是,所以如果你如果和我一样,用的是tomcat服务器,那就会遇到当我们要访问我们的网页时,访问的地址是http://ip:port/projectName/in...一般没有项目会直接用http://ip:port/index.html这个地址。所以像上面提到的js路径地址,这时就会被解析成http://ip:port/static/js/mani...,而正确的的url路径应该是http://ip:port/projectName/st...,所以我们需要将assetsPublicPath: '/'改成assetsPublicPath: '/projectName/',这样才能保证资源的正确发布。
坑位提示:自己当时是这样配置的assetsPublicPath: '/projectName',也就是相对于正确的少了一个'/',但神奇的是js,css都能打包出正确的路径,自己自动添加了一个'/',但在一个.vue的template下有一个图片路径被解析成http://ip:port/projectNamesta...,rojectName与static之间少了一个'/',个人估计是针对于index.html中路径的替换和其他位置的,多了一些容错的处理。

关于项目,文件,内容hash值

在webpack打包中,有三类hash值,还是一篇,分别是:

整个项目编译,产生的hash值,官方js打包也是默认使用这个值,所以你所有的静态文件都用这个打包的话,就会看到打包出的文件含有的hash值一样,见下图

模块文件编译,产生的hash值,所以不同的模块产生的hash值就不一样,见下图

clipboard.png

转载地址:http://ugqwl.baihongyu.com/

你可能感兴趣的文章
POJ 3250:Bad Hair Day 好玩的单调栈
查看>>
python文件处理
查看>>
iOS Bug
查看>>
清空并写文件
查看>>
Wordvec_句子相似度
查看>>
Matlab常用命令大全
查看>>
shell命令 安装软件包
查看>>
hdoj1043 Eight(逆向BFS+打表+康拓展开)
查看>>
Spring.net 容器注入是替换(后处理器appConfigPropertyHolder)
查看>>
递归改进(在左侧树形不仅可以显示目录还可以显示跟要查询子目录统计的所有文件)...
查看>>
动态参数与静态参数的判断、修改
查看>>
java学习笔记3
查看>>
突然决定要记笔记,于是就来到了博客园,希望自己能够坚持下去
查看>>
Python程序-输出1000以内素数
查看>>
深入理解React、Redux
查看>>
CSS中伪类选择器及伪元素
查看>>
设计原则
查看>>
批处理处理oracle数据库脚本导入
查看>>
创业公司失败的20大原因 没市场需求排第一
查看>>
2018年5月26日笔记
查看>>