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

rollup output as string into JSON file instead of directly as a JS file

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

我有一个迷你 swelt 应用程序作为侧边栏。

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

我如何编写(请原谅这里汇总的笨拙)一个“中间件”,它将获取输出并包装到一个简单的 json 对象中?

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

您可以使用一个插件,它们有几个您可以定义的挂钩,特别是 generateBundle one will allow you to inspect the generated bundle. Then using 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) 
            });
        }
    }
]