网站首页 > 教程文章 正文
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-09 esbuild:一款快 10-100 倍的 JS 打包 / 压缩工具
- 2025-05-09 ESM 内功心法:化解 require 中的夺命一击!
- 2025-05-09 Rust cargo 命令行工具使用教程(rust指令怎么用)
- 2025-05-09 Axios CORS 问题处理(axios设置cors)
- 2025-05-09 Nodejs 第七十四章(微服务)(nodejs微服务是什么)
- 2025-05-09 11个web前端开发人员必备的在线工具,功能强大,值得收藏
- 2025-05-09 新一代Python包管理工具来了(python community包)
- 2025-05-09 开发者提示工程实用指南(工程师开发使用中)
- 2025-05-09 软件构建工具汇总与选择指南(软件构造工具)
- 2025-05-09 NPM 常用命令详解(npm用法)
- 最近发表
-
- 一课译词:一刀两断(一刀两断成语解释)
- 核心短语break up用法解析(breakd短语)
- HTML+CSS 实现商品图片列表放大视觉效果 复制完整代码即可马上调用
- 前端实现右键自定义菜单(前端实现右键自定义菜单怎么设置)
- Python中docx与docxcompose批量合并多个Word文档并添加分页符
- Java 将Excel转为XML(java将xls转换成xlsx)
- jq+ajax+bootstrap改了一个动态分页的表格
- css兼容性问题及一些常见问题汇总大全,赶快收藏!
- Java 的业务逻辑验证框架 之-fluent-validator
- 小程序cover-view踩坑系列2(微信小程序overflow)
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)