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 ajax 登录验证实现代码
Sep 23 Javascript
jquery1.4 教程二 ajax方法的改进
Feb 25 Javascript
优化innerHTML操作(提高代码执行效率)
Aug 20 Javascript
利用JS判断用户是否上网(连接网络)
Dec 23 Javascript
jquery删除ID为sNews的tr元素的内容
Apr 10 Javascript
jquery实现类似淘宝星星评分功能实例
Sep 12 Javascript
原生javascript实现DIV拖拽并计算重复面积
Jan 02 Javascript
js中的内部属性与delete操作符介绍
Aug 10 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
Dec 08 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
微信小程序实现分享到朋友圈功能
Jul 19 Javascript
ckeditor一键排版功能实现方法分析
Feb 06 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
上课看小说检讨书
2014/02/22 职场文书
食品安全标语
2014/06/07 职场文书
个人职业及收入证明
2014/10/13 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
python实现商品进销存管理系统
2022/05/30 Python