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 相关文章推荐
ExtJS4 Grid改变单元格背景颜色及Column render学习
Feb 06 Javascript
node.js中的console.assert方法使用说明
Dec 10 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
jQuery实现高亮显示的方法
Mar 10 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
Apr 06 Javascript
js获取元素的标签名实现方法
Oct 08 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 Javascript
你可能不知道的JSON.stringify()详解
Aug 17 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
vue实现设置载入动画和初始化页面动画效果
Oct 28 Javascript
详解JS预解析原理
Jun 16 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 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
经典c++面试题三
2015/07/08 面试题
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
Ajxa常见问题都有哪些
2014/03/26 面试题
环保标语大全
2014/06/12 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
贷款委托书怎么写
2014/08/02 职场文书
博士生专家推荐信
2014/09/26 职场文书
七一表彰大会简报
2015/07/20 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
django上传文件的三种方式
2021/04/29 Python
SQL中的连接查询详解
2022/06/21 SQL Server