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 相关文章推荐
破除一些网站复制、右键限制
Nov 04 Javascript
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Apr 12 Javascript
jQuery each()方法的使用方法
Mar 18 Javascript
ExtJS 设置级联菜单的默认值
Jun 13 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
Oct 04 Javascript
Javascript基础教程之关键字和保留字汇总
Jan 18 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
Oct 20 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
Jan 07 Javascript
浅谈Vue 数据响应式原理
May 07 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
html实现随机点名器的示例代码
Apr 02 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事务控制实现银行转账实例
2015/01/29 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
推荐11个实用Python库
2015/01/23 Python
初学Python函数的笔记整理
2015/04/07 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
旅游管理专业生自荐信范文
2014/01/02 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
学生干部培训方案
2014/06/12 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
会计电算化实训报告
2014/11/04 职场文书
2014年仓库工作总结
2014/11/20 职场文书
玄武湖导游词
2015/02/05 职场文书
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android