网站首页 > 文章精选 正文
resolve.exportsFields
默认值为['exports'],和 package.json中的exports对应
项目结构:
// webpack.config.js
resolve: {
exportsFields: ['exports'],
},
// node_modules/aaaaa/package.json
{
...
"exports": {
"./aa/bb": "./index.js"
}
}
// node_modules/aaaaa/index.js
export const value = 10
// 引入 aaaaa 包中的 value 值
// src/index.js
import { value } from 'aaaaa/aa/bb'
console.log('value', value) // 10,实际的引入路径为:node_modules/aaaaa/index.js
当修改了exportsFields的值时,其值需要和 package.json 中的字段值一致,否则资源将无法查找到具体位置
// webpack.config.js
resolve: {
exportsFields: ['myExports'],
},
// node_modules/aaaaa/package.json
{
...
"myExports": {
"./aa/bb": "./index.js"
}
}
// node_modules/aaaaa/index.js
export const value = 10
// 引入 aaaaa 包中的 value 值
// src/index.js
import { value } from 'aaaaa/aa/bb'
console.log('value', value) // 10,实际的引入路径为:node_modules/aaaaa/index.js
当不配置resolve.exportsFields的值时
// node_modules/aaaaa/aa/bb/index.js
export const value = 11
// 引入 aaaaa 包中的 value 值
// src/index.js
import { value } from 'aaaaa/aa/bb'
console.log('value', value) // 11,实际的引入路径为:node_modules/aaaaa/aa/bb/index.js
/**
* 如果 aaaaa 的package.json中仍配置了exports{ "./aa/bb": "./index.js" }
* 其value值将依旧为 10
*/
resolve.mainFields
target设置为 webworker | web | 未设置 时,默认值为:['browser', 'module', 'main']
target设置为其他值时,默认值为:['module', 'main']
// webpack.config.js 不设置 target 和 resolve.mainFields
// node_modules/aaaaa/package.json
{
...
"main": "index.js",
"browser": "./aa/bb/index.js"
}
// src/index.js
import { value } from 'aaaaa'
console.log('value', value) // 11,实际的引入路径为:node_modules/aaaaa/aa/bb/index.js
设置 resolve.mainFields 为 ['main'] 时
// src/index.js
import { value } from 'aaaaa'
console.log('value', value) // 10,实际的引入路径为:node_modules/aaaaa/index.js
资源的查找路径优先根据 resolve.exportsFields ,再根据 resolve.mainFields。
猜你喜欢
- 2025-05-24 前端人必看!10 个实战优化技巧,让项目性能直接起飞!
- 2025-05-24 使用 nginx 同域名下部署多个 vue 项目,并使用反向代理
- 2025-05-24 React 组件频繁重绘?5 个实战技巧让页面流畅度暴涨 70%!
- 2025-05-24 前端踩坑血泪史!5 个 TypeScript 实战技巧拯救你的代码
- 2025-05-24 安装Node.js
- 2025-05-24 【HarmonyOS Next之旅】兼容JS的类Web开发(一)
- 2025-05-24 什么,你还使用 webpack?别人都在用 vite 搭建项目了
- 2025-05-24 微信百度字节小程序包过大解决方案(实战经验总结)
- 2025-05-24 从 Element UI 源码的构建流程来看前端 UI 库设计
- 2025-05-24 Tree Shaking 原理:如何让 JavaScript 包体积减少高达50%?
- 05-25β晶型PPH管压力等级的确定
- 05-25β晶型PPH管防静电参数
- 05-25魔兽WLK:P3五人本测试结果,冠军试炼加入观星者,掉落毕业饰品
- 05-25几滴血就能检测阿尔茨海默病?日本推出全球首款血液检测阿尔茨海默病装置
- 05-25日解析阿尔茨海默病致病蛋白构造
- 05-25抗菌药物皮试有讲究
- 05-258 周绒毛密度达 22 根 /cm^2,β-catenin 信号通路全解析
- 05-25《拳皇15》PS5/PS4平台开放性β测试用Demo上架商店
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)