Rollup是否可以保留文件和文件夹结构?

时间:2017-11-17 15:33:21

标签: rollupjs

我正在使用ES6导入并使用Rollup进行转换。

输出是一个捆绑文件。

可以将Rollup配置为生成文件换文件转换结果吗?

这是我正在使用的当前配置,显然会吐出一个文件。

 gulp.task('rollup', function() {
    const rollup = require('rollup');
    const nodeResolve = require('rollup-plugin-node-resolve');

    const JS_INDEX_FILE = 'src/index.js';

    return rollup.rollup({
        input: JS_INDEX_FILE,
        plugins: [
            nodeResolve({
                browser: true
            })
        ]
    }).then(bundle => {
            bundle.write({
                sourcemap: true,
                format: 'cjs',
                strict: true,
                file: 'bundle.js'
            });
        });
});

基本上,我希望使用require()代替import的单个文件。

2 个答案:

答案 0 :(得分:1)

Rollup是一个模块 bundler 。你想要的是一个编译器,比如Babel。

答案 1 :(得分:0)

如果您想使用 rollup 将 ES6 转换为 CommonJS 并保留文件和目录结构,您的 rollup 配置可能如下所示:

import { nodeResolve } from "@rollup/plugin-node-resolve";

export default [
  {
    input: ["src/index.js"],
    plugins: [nodeResolve()],
    output: [
      {
        dir: "dist",
        format: "cjs",
        exports: "named",
        preserveModules: true, // Keep directory structure and files
      }
    ]
  }
]

请参阅 Integrating Rollup with Other Tools 以确定您是否需要 @rollup/plugin-node-resolve 插件以及从外部包中“保留”的确切内容。