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 相关文章推荐
为Extjs加加速(javascript加速)
Aug 19 Javascript
JavaScript判断前缀、后缀是否是空格的方法
Apr 15 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
Aug 25 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
Sep 08 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
在vscode中统一vue编码风格的方法
Feb 22 Javascript
Angular父组件调用子组件的方法
Apr 02 Javascript
JS实现将二维数组转为json格式字符串操作示例
Jul 12 Javascript
layui 动态设置checbox 选中状态的例子
Sep 02 Javascript
JS数组及对象遍历方法代码汇总
Jun 16 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
Jun 25 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 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
表单内同名元素的控制
2006/11/22 Javascript
JS编程小常识很有用
2012/11/26 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
js实现楼层导航功能
2017/02/23 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
Python txt文件如何转换成字典
2020/11/03 Python
python drf各类组件的用法和作用
2021/01/12 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
行政办公员自我评价分享
2013/12/14 职场文书
业务员岗位职责范本
2013/12/15 职场文书
上班迟到检讨书
2014/01/10 职场文书
初三化学教学反思
2016/02/22 职场文书
创业计划书之书店
2019/09/10 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang
使用Python拟合函数曲线
2022/04/14 Python
python多次执行绘制条形图
2022/04/20 Python
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库