Svelte:未捕获的引用错误:未定义导出

Mag*_*ick 8 javascript node.js svelte

背景

我正在尝试在 Svelte 应用程序中使用 dgraph-js-http 。

错误

我面临的最初错误是:

Uncaught ReferenceError: buffer is not defined
    <anonymous> http://localhost:5000/build/bundle.js:6947
Run Code Online (Sandbox Code Playgroud)

我之所以将其包括在内,是因为我的解决方案可能不是最好的,希望有一种方法可以解决这个问题以及当前的阻止程序问题。

然而,经过反复试验(参见下文我尝试过的各种方法)后,我现在陷入了困境。

当前误差

解决上述错误后,我现在被此错误阻止:

Uncaught ReferenceError: define is not defined
Run Code Online (Sandbox Code Playgroud)

尝试解决

以下均无效。

  • 添加<script src="https://bundle.run/stream@0.0.2"></script>到index.html
  • 跑步npm install stream
  • 添加import * as Stream from "stream"到App.svelte文件
  • 添加import * as Stream from "stream"到stores.js文件
  • 添加preferBuiltins:true​rollup.config.js
  • 添加npm install --save-dev rollup-plugin-node-polyfills
  • 添加。preferBuiltins:false​ rollup.config.js这解决了之前的错误并导致了新的错误:Uncaught ReferenceError: define is not defined
  • 添加npm install --save define。现在,这会导致当前的阻止程序:
Uncaught ReferenceError: exports is not defined
Run Code Online (Sandbox Code Playgroud)

小智 1

我认为您错过了type: "module"package.json 中的属性。这里,type属性代表javascript解释器的类型是commonjs还是babel。type: "module"表示您将使用 babel 作为 ECMA 脚本解释器。