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 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
javascript下查找父节点的简单方法
Aug 13 Javascript
javascript中window.event事件用法详解
Dec 11 Javascript
js控制表单操作的常用代码小结
Aug 15 Javascript
JavaScript中的函数重载深入理解
Aug 04 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
AngularJS入门教程之控制器详解
Jul 27 Javascript
微信小程序开发经验总结(推荐)
Jan 11 Javascript
JS实现的简单图片切换功能示例【测试可用】
Feb 14 Javascript
如何在微信小程序里面退出小程序的方法
Apr 28 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 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设置images目录不充许http访问的方法
2016/11/01 PHP
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
python计算方程式根的方法
2015/05/07 Python
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
浅谈Django REST Framework限速
2017/12/12 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
pytorch数据预处理错误的解决
2020/02/20 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
日本航空官方网站:JAL
2019/06/19 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
母亲节感恩寄语
2014/02/21 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书