我需要对 Rollup 的输出做一些后期处理,所以我有一个使用
magic-string
的插件,如下所示:
{
name: 'postprocessing',
renderChunk(code, chunk, opts) {
const s = new MagicString(code);
s.replace(...);
return {
code: s.toString(),
map: null,
}
}
}
这里明显的问题是之前生成的源映射将被关闭,因为它们不考虑对代码所做的更改。
但是,非常不清楚实际上应该如何生成一个 sourcemap 并合并到现有的 sourcemap 中(对于构建管道中所做的所有其他更改)。我所做的每一次尝试都会导致 Rollup 吐出一个完全空的最终源映射,除非我返回
null
,其中它只是由于我的替换插件而不正确。
{
name: 'postprocessing',
renderChunk(code, chunk, opts) {
const s = new MagicString(code);
s.replace(...);
return {
code: s.toString(),
map: s.generateMap({ }), // What options am I supposed to use here?
}
}
}
如果我不返回,Rollup 输出的 sourcemap
null
:
{"version":3,"file":"foo.umd.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}