もっとちゃんと探せば npm パッケージありそうだけど取り急ぎ。
コード
function download(text, filename, mimeType = 'text/plain') {
const href = `data:${mimeType};charset=utf-8,` + encodeURIComponent(text)
const a = document.createElement('a')
a.setAttribute('href', href)
a.setAttribute('download', filename)
document.body && document.body.appendChild(a)
a.click()
a.remove()
}
Usage
download('Hello', 'world.txt')
const csvText = `a,b,c
10,20,30`
download(csvText, 'abc.csv', 'text/csv')
デモ
I got Toshino pic.twitter.com/qcWeXDf8cZ
— あのぞん😎 (@anozon) 2018年10月24日