Reactjs Rollup PREVICEMODULESROOT未按预期工作

Reactjs Rollup PREVICEMODULESROOT未按预期工作,reactjs,typescript,rollupjs,Reactjs,Typescript,Rollupjs,我觉得在使用preserveModules时,preserveModulesRoot选项不能正常工作。假设我有一个src/index.ts和一堆src/components/CompXYZ.tsx文件。我希望将preserve modules和root设置为src时,我的构建如下所示: dist -- index.js -- index.map.js -- index.d.ts -- components ---- CompA.js ---- CompA.map.js ---- CompA.d.

我觉得在使用
preserveModules
时,
preserveModulesRoot
选项不能正常工作。假设我有一个
src/index.ts
和一堆
src/components/CompXYZ.tsx
文件。我希望将preserve modules和root设置为
src
时,我的构建如下所示:

dist
-- index.js
-- index.map.js
-- index.d.ts
-- components
---- CompA.js
---- CompA.map.js
---- CompA.d.ts
---- CompB.js
---- CompB.map.js
---- CompB.d.ts
dist
-- index.js
-- index.map.js
-- index.d.ts
-- components
---- CompA.d.ts
---- CompB.d.ts
-- src
---- components
------ CompA.js
------ CompA.map.js
------ CompB.js
------ CompB.map.js
但是实际发生的情况是,
src
前缀仅从
input.ts
文件中删除,而没有其他文件,因此构建结果如下所示:

dist
-- index.js
-- index.map.js
-- index.d.ts
-- components
---- CompA.js
---- CompA.map.js
---- CompA.d.ts
---- CompB.js
---- CompB.map.js
---- CompB.d.ts
dist
-- index.js
-- index.map.js
-- index.d.ts
-- components
---- CompA.d.ts
---- CompB.d.ts
-- src
---- components
------ CompA.js
------ CompA.map.js
------ CompB.js
------ CompB.map.js
所以它看起来像是
preserveModulesRoot
只影响
input
选项中提到的模块,但是如果我要手动逐个写出所有模块,我可以将它们放在我想要的地方,而不是使用
preserveModulesRoot
。如果不为启用了
preserveModules
的所有其他模块设置根目录,那么此设置有什么意义

这是我的
rollup.config.js

从'rollup plugin peer deps external'导入peerDepsExternal;
从“@rollup/plugin node resolve”导入解析;
从“汇总插件commonjs”导入commonjs;
从“rollup-plugin-typescript2”导入类型脚本;
从“汇总插件PostCs”导入PostCs;
从“@rollup/plugin image”导入图像;
导出默认值{
输入:“src/index.ts”,
输出:{
dir:'dist',
格式:“esm”,
sourcemap:true,
对,,
PreserveModuleRoot:'src',
},
插件:[
peerDepsExternal(),
resolve(),
commonjs(),
typescript(),
postcss(),
image(),
],
};

您找到解决方案了吗?我遇到了同样的问题,很遗憾,我不太记得我是否提出了一些有效的解决方案,但最终我采用了完全不同的解决方案。你找到解决方案了吗?我遇到了同样的问题,很遗憾,我不太记得我是否提出了一些可行的方案,但最终我采用了完全不同的解决方案。