Webpack path与publicPath的区别详解


Posted in Javascript onMay 03, 2018

前言

在webpack模块化开发的过程中,发现webpack.config.js配置文件的输出路径总有一个path与publicPath,不解其意。

module.exports = {
 output: {
 path: path.resolve("./examples/dist"),
 filename: "app.js",
 publicPath: "What should I put here?" 
 } 
}

正文

官方解释

publicPath: The output.path from the view of the Javascript / HTML page.

从JS/HTML页面来看的输出路径

我的理解

output.path 储存你所有输出文件的本地文件目录。(绝对路径)

举个例子:

path.join(__dirname, “build/”)

webpack将会把所有的文件输出到localdisk/path-to-your-project/build/

output.publicPath

你上传所有打包文件的位置(相对于服务器根目录)

path:用来存放打包后文件的输出目录

publicPath:指定资源文件引用的目录

用处:例如在express中,指定了public/dist是网站的根目录,网站的源文件存放在public中,那么就需要设置path:”./dist”指定打包输出到该目录,而publicPath就需要设置为”/”,表示当前路径。

publicPath取决于你的网站根目录的位置,因为打包的文件都在网站根目录了,这些文件的引用都是基于该目录的。假设网站根目录为public,引用的图片路径是'./img.png',如果publicPath为'/',图片显示不了,因为图片都打包放在了dist中,那么你就要把publicPath设置为”/dist”。

举个例子:

/assets/

假设你将这个工程部署在服务器 http://server/

通过将output.publicPath设置为/assets/,这个工程将会在http://server/assets/找到webpack资源。

在这种前提下,所有与webpack相关的路径都会被重写成以/assets/开头。

src="picture.jpg" Re-writes ➡ src="/assets/picture.jpg"

Accessed by: (http://server/assets/picture.jpg)

src="/img/picture.jpg" Re-writes ➡ src="/assets/img/picture.jpg"

Accessed by: (http://server/assets/img/picture.jpg)

重要

如果你在用style-loader或者css sourceMap,你就需要设置publicPath。把它设置成服务器地址的绝对路径,比如http://server/assets/,这样资源可以被正确加载。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
参考:关于Javascript中实现暂停的几篇文章
Mar 04 Javascript
js类的静态属性和实例属性的理解
Oct 01 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
jQuery on()方法示例及jquery on()方法的优点
Aug 27 Javascript
Jquery $when done then的用法详解
May 20 Javascript
JS中使用DOM来控制HTML元素
Jul 31 Javascript
JavaScript面试题大全(推荐)
Sep 22 Javascript
详解.vue文件中监听input输入事件(oninput)
Sep 19 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
Jul 25 Javascript
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
Laravel admin实现消息提醒、播放音频功能
Jul 10 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 Javascript
Webpack中publicPath路径问题详解
May 03 #Javascript
Angular Renderer (渲染器)的具体使用
May 03 #Javascript
react router4+redux实现路由权限控制的方法
May 03 #Javascript
vue.js学习笔记之v-bind和v-on解析
May 03 #Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 #jQuery
详解VueJs中的V-bind指令
May 03 #Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
May 02 #Javascript
You might like
虫族 Zerg 热键控制
2020/03/14 星际争霸
S900/ ETON E1-XM 收音机
2021/03/02 无线电
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
angularJS 入门基础
2015/02/09 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
python二叉树的实现实例
2013/11/21 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python dataframe NaN处理方式
2019/12/26 Python
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
女大学生毕业找工作的自我评价
2013/10/03 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
销售队伍口号
2014/06/11 职场文书
保护水资源的标语
2014/06/17 职场文书
体育课外活动总结
2014/07/08 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
golang中的空接口使用详解
2021/03/30 Python
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技