【发布时间】:2019-07-29 01:32:10
【问题描述】:
我对 Svelte 还很陌生(我一直在使用版本 2,直到 3 版正确发布),并且我正在构建一个旨在进行一些音频分析 (FFT) 的网站。因此,我将古老的 ToneJS 库 (http://tonejs.github.io/) 合并到我的一个组件中。
由于某种原因,仅仅导入 ToneJS 就足以让整个应用程序崩溃。
这是我的 Svelte 组件的全部内容:
<h2>Pitch analyser</h2>
<script>
import Tone from 'tone';
</script>
这会导致错误:
Tone.js:7 Uncaught TypeError: Cannot assign to read only property 'listener' of object '#<AudioContext>'
at t.Context.set (Tone.js:7)
at t.Listener.<anonymous> (Tone.js:7)
at Function.e.getContext (Tone.js:7)
at new t.Listener (Tone.js:7)
at Object.<anonymous> (Tone.js:7)
at Object.<anonymous> (Tone.js:7)
at i (Tone.js:1)
at Object.<anonymous> (Tone.js:7)
at i (Tone.js:1)
at Tone.js:1
这可能不是 Svelte 特有的,但我已经在许多其他项目(包括 React 内部等)中成功使用了 Tone JS,没有任何问题。
这可能是什么原因造成的?以及如何在我的 Svelte 应用程序中开始使用 ToneJS? (使用 Rollup 打包/转译)
【问题讨论】:
-
好像在使用webpack的时候,没有出现这个问题。所以必须是汇总包 ToneJS 的方式。
-
看来问题不在 Rollup 方面。
标签: javascript rollupjs svelte svelte-component