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 相关文章推荐
js实现的仿新浪微博完美的时间组件升级版
Dec 20 Javascript
JavaScript instanceof 的使用方法示例介绍
Oct 23 Javascript
利用Jquery实现可多选的下拉框
Feb 21 Javascript
jQuery filter函数使用方法
May 19 Javascript
express的中间件cookieParser详解
Dec 04 Javascript
javascript格式化日期时间方法汇总
Jun 19 Javascript
基于jQuery实现点击弹出层实例代码
Jan 01 Javascript
js实现放大镜特效
May 18 Javascript
React路由管理之React Router总结
May 10 Javascript
让Vue也可以使用Redux的方法
May 23 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
js实现右键弹出自定义菜单
Sep 08 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
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
浅谈Python中的bs4基础
2018/10/21 Python
python绘制漏斗图步骤详解
2019/03/04 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
Python调用Windows命令打印文件
2020/02/07 Python
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
教师求职推荐信范文
2013/11/20 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
郭明义观后感
2015/06/08 职场文书
网吧温馨提示
2015/07/17 职场文书
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android