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 相关文章推荐
Three.js源码阅读笔记(光照部分)
Dec 27 Javascript
JS按字节截取字符长度实例
Nov 20 Javascript
判断文件是否正在被使用的JS代码
Dec 21 Javascript
js判断是否为ie的方法小结
Jan 13 Javascript
AngularJS入门教程之学习环境搭建
Dec 06 Javascript
编写简单的jQuery提示插件
Dec 21 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
快速了解vue-cli 3.0 新特性
Feb 28 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
Aug 24 Javascript
JavaScript简单实现的仿微博留言功能示例
Jan 17 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
Nov 11 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的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
js验证表单第二部分
2006/11/25 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Python模块结构与布局操作方法实例分析
2017/07/24 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
python实现批量修改文件名
2020/03/23 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
韩国商务邀请函
2014/01/14 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
环保项目建议书
2014/08/26 职场文书
安全保证书
2015/01/16 职场文书
教师节寄语2015
2015/03/23 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers