起因
学习某低代码平台代码,看packages中有个exports,指向了不同的js文件,疑惑为什么这么做
解惑
在通常情况下,我们会使用 main:“index.js” 指向单独指向一个所抛出的 exports
但是使用过 exports 后,会生成一个对应关系,抛出不同的模块,并消除替换了 mian 字段的默认行为 例如
{
"exports": {
".": "./main.js",
"./core/test": "./test.js",
}
}
// 使用时可以使用如此的对应关系 分模块去使用
// ".": "./main.js",
import test from 'package'
// "./core/test": "./test.js",
import test from 'package/core/test'
根据模块语法 引用不同的文件
"exports": {
".": {
"import": "./lib/esm/index.mjs",
"require": "./main.js"
},
"./core/test": "./test.js"
}
后续疑问
exports 为抛出不同的模块,那么ts中的tsconfig 的paths 和 vite的 resolve.alias 区别是什么?