在使用带有代码拆分的ROLLUP时,有没有办法保留包的目录结构?

2022-03-31 00:00:00 javascript bundle rollupjs

上下文:

给定如下的项目结构:

┌ src
├─┬ a
│ └── module.js
├─┬ b
│ └── module.js
└── util.js

其中两个module.js文件都导入util.js,使用以下配置:

export default {
    experimentalCodeSplitting: true,
    input: [
        'src/a/module.js',
        'src/b/module.js'
    ],
    output: {
        dir: 'bundle',
        format: 'esm'
    }
};

输出以下结构:

┌ bundle
├── chunk-af6d88c4.js
├── module.js
└── module2.js

问题:

在使用代码拆分来减少项目中的冗余代码时,如果不同目录中有多个具有相同文件名的模块,则当ROLLUP写入输出目录时,它会创建一个平面结构。它足够智能,可以识别多个文件具有相同的名称,并附加一个数字来区分它们。虽然这是工作代码,但在需要它们的页面上维护对那些模块的引用变得很困难-开发人员必须知道哪个数字对应哪个文件。

有没有办法在输出多个捆绑包时使用ROLLUP来保留文件夹结构,以便更清楚地显示文件关系?或者,如果仅通过汇总无法做到这一点,是否可以采用其他解决方案?


解决方案

使用预留模块:True标志将从输入输出相同的目录结构。 https://rollupjs.org/guide/en/

相关文章