将输出作为字符串汇总到JSON文件中,而不是直接作为JS文件

时间:2020-09-17 12:01:00

标签: rollup rollupjs

   export default {
      input: 'src/main.sidebar.ts',
      output: {
        sourcemap: false,
        format: 'iife',
        name: 'sidebar',
        file: 'public/build/sidebar.json'
      },

我有一个小巧的应用程序作为侧边栏。

上面的汇总配置将经过编译的输出原样传送到.json文件中。

我如何编写(请注意此处汇总的小节)一个“中间件”,它将获取输出并包装到一个简单的json对象中?

我需要在JSON有效负载中传输此JS代码。

1 个答案:

答案 0 :(得分:0)

您可以使用一个插件,这些插件可以定义多个钩子,特别是generateBundle可以允许您检查生成的包。然后,使用this.emitFile插件上下文函数,您实际上可以输出JSON。这是一个例子

plugins: [
    {
        name: 'whatever',
        generateBundle(outputOptions, bundle) {
            const entry = Object.values(bundle).find((chunk) => chunk.isEntry);
            this.emitFile({
               type: 'asset',
               fileName: 'entry.json',
               source: JSON.stringify(entry.code) 
            });
        }
    }
]