首页 > 解决方案 > 有没有办法从 Rollup 的输出中删除一行?

问题描述

我正在寻找一种方法来删除汇总输出文件的第一行。我知道我可以使用脚本并说 sed 来做到这一点,但我正在寻找更清洁的东西。

我尝试了诸如替换剥离之类的插件,但这些似乎并不能让我“替换”一行代码。

有谁怎么做到这一点?有插件吗?

更新

这是我目前的 sed 解决方案...

"build": "rollup -c && npm run fix:rollup",
"fix:rollup": "sed '1d' ./dist/index.js > ./tmp.js; mv ./tmp.js ./dist/index.js"

标签: rollup

解决方案


使用 writeBundle 钩子,草图:

import fs from 'fs';//Node.js builtin
...
plugins:[
  {//inline plugin
    writeBundle(bundle){
      for (const [fileName, chunkOrAsset] of Object.entries(bundle)) {
        //test for file you want to modify
        const data = fs.readFileSync(fileName, {encoding:'utf8'});
        data.replace(/^[^\n]*\n/,'');
        fs.writeFileSync(...)
      }
  }
]

推荐阅读