javascript - Rollup TypeScript 配置产生不完整的 JavaScript 包
问题描述
我正在使用 Rollup 和 TypeScript 构建一个 React 组件库,并且我想捆绑这些组件,以便我团队中的其他人可以在他们的应用程序中使用它们。问题是我的捆绑输出缺少导出,所以我的配置显然有缺陷。
汇总配置:
export default {
input: ['src/Button.tsx'],
output: {
dir: 'build',
format: 'esm',
sourcemap: true,
exports: 'named'
},
plugins: [
typescript({
declarationDir: 'build',
jsx: 'react'
}),
sourceMaps()
]
};
打字稿配置:
{
"include": [
"src",
"types"
],
"compilerOptions": {
"module": "esnext",
"lib": [
"dom",
"esnext"
],
"importHelpers": true,
"declaration": true,
"sourceMap": true,
"rootDir": "./src",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"baseUrl": "./",
"paths": {
"@": [
"./"
],
"*": [
"src/*",
"node_modules/*"
]
},
"jsx": "react",
"esModuleInterop": true
}
}
最后Button.tsx
:
export enum ButtonSize {
...
}
export enum ButtonType {
...
}
const someVar = ...
interface ButtonProps {
...
}
interface ButtonStyle {
...
}
const buttonStyle: ButtonStyle = {
...
}
const Button: React.FC<ButtonProps> = (p: ButtonProps) => {
...
}
export default Button
最终的 JavaScript 包只有someVar
. 下面 的一切都someVar
不见了。
我的配置和代码在 JavaScript 输出中留下这些空白的原因是什么?
解决方案
事实证明,答案是消除所有export default
. 简单地导出为命名导出解决了这个问题。
原因?
“注意:此插件无法合并导出默认导出,只会导出命名导出。”
这是在细则中@rollup/plugin-multi-entry
推荐阅读
- servicestack - SqliteException:SQLite 错误 1:“SQL 变量太多”
- powerbi - 使用 LOOKUPVALUE 返回所有值,而不仅仅是匹配项
- javascript - 如何使用 es6 every 返回嵌套数组的布尔值?
- python - 将 Pandas DataFrames 与不同列中的键合并
- reverse-proxy - 反向代理背后的 Acumatica 导致 GetFile.ashx 出现问题
- python - 有没有办法每 x 秒运行一次函数?(每秒输出)
- python - 如何在 peewee 中使用 backref
- excel - 如果逻辑测试包含 5 < x < 7 之类的区间,我该如何格式化 IFS 语句?
- node.js - Nodejs Promise“res.end 不是函数”错误
- reactjs - 在函数执行之前反应轮播更新索引