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 相关文章推荐
jQuery EasyUI中对表格进行编辑的实现代码
Jun 10 Javascript
浅谈javascript 函数内部属性
Jan 21 Javascript
AngularJS语法详解(续)
Jan 23 Javascript
jQuery实现点击图片翻页展示效果的方法
Feb 16 Javascript
js动态添加的DIV中的onclick事件简单实例
Jul 25 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
微信小程序 五星评分的实现实例
Aug 04 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
Apr 10 Javascript
Vue和React组件之间的传值方式详解
Jan 31 Javascript
vue滚动固定顶部及修改样式的实例代码
May 30 Javascript
Javascript异步执行不按顺序解决方案
Apr 30 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
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
javascript 面向对象封装与继承
2014/11/27 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
资产评估专业大学生求职信
2013/09/29 职场文书
经济系大学生求职信
2013/10/01 职场文书
新学期班主任寄语
2014/01/18 职场文书
园艺师求职信
2014/03/10 职场文书
教师考核材料
2014/05/21 职场文书
普通党员对照检查材料
2014/09/24 职场文书
开学典礼致辞
2015/07/29 职场文书
导游词之临安白水涧
2019/11/05 职场文书
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js