json - svelte - 从本地文件夹读取 json 文件
问题描述
我的svelte
应用程序需要json
从公用文件夹中读取文件。我完全按照这个链接rollup
的设置,然后添加到我的:json
app.svelte
import * as port from '/port.json';
port.json
与 .一起位于公用文件夹中index.html
。但我不断收到此错误:
main.js:11 未捕获的 ReferenceError:端口未在 main.js:11 中定义
我收到这条消息Terminal
,我不确定这意味着什么:
(!) 缺少全局变量名使用 output.globals 指定对应于外部模块 /port.json 的浏览器全局变量名(猜测“端口”)
我该如何解决这个问题?
解决方案
你有两个选择。
- 将文件移动到您的
src/
文件夹并使用 Rollup 将其与应用程序代码的其余部分捆绑在一起。这是您需要@rollup/plugin-json
捆绑 json 文件的地方。然后你可以像这样导入它:
<script>
import json from './port.json';
</script>
<p>{JSON.stringify(json)}</p>
- 将文件保存在您的
public/
文件夹中,并在运行时使用 fetch 检索它。
<script>
let fetchJson = fetch('port.json').then(res => res.json());
</script>
{#await fetchJson}
<p>Loading JSON</p>
{:then result}
<p>{JSON.stringify(result)}</p>
{/await}
推荐阅读
- c# - 任务/等待填充数据表 - 没有性能改进
- ignite - Ignite 自定义 SQL 函数是在服务器节点还是客户端节点上执行?
- swift - 避免在每个 ViewController 中重复进行相同的调用
- javascript - vue $set 中令人困惑的行为
- angular - Angular.io v8:动画对象和查询()-孩子简单而在一起
- javascript - 如何单击按钮以使用 chrome 扩展在谷歌文档中启用菜单项?
- shell - 在 shell 中删除 windows env 变量中的反斜杠
- bootstrap-tags-input - 使两个引导标签输入具有不同的图标以将其删除
- javascript - Selenium - 我无法在谷歌的“继续之前”对话框中单击按钮
- c# - 在遍历数组时递增指向数组的指针时,不安全的代码是否会越界?