Я пытаюсь импортировать константное значение из компонента Svelte, но свертывание говорит, что компонент не экспортирует это значение. Что я делаю не так, или это проблема с накопительным пакетом?
Компонент.svelte:
<script>
export const answer = 42;
</script>
App.svelte:
<script>
import { answer } from './Component.svelte';
</script>
<h1>{answer}</h1>
Та же проблема возникает при импорте определения перечисления.
подробнее об этом здесь: svelte.dev/tutorial/module-exports
Попробуйте заменить на в Component.svelte. Но обратите внимание, что он будет доступен только для чтения, независимо от того, как вы его определите (const или let), поэтому, если вы хотите изменить значение, вы можете создать для этого функцию установки или получения, а затем получить доступ к переменной, используя это.
<script context = "module">
export const answer = 42;
</script>
Svelte использует синтаксис export
для определения свойств компонента. Поэтому, если вы хотите использовать это export
, как в современных модулях javascript, вы должны указать его компилятору Svelte, используя context = "module"
, например:
<script context = "module">
export const answer = 42;
</script>
Ознакомьтесь с REPL и документом, чтобы узнать об этом немного больше.
Обратите внимание, что этот код и ссылка на REPL работают правильно, но если вы используете плагин Svelte IntelliJ v0.20.0, он будет неправильно жаловаться на импорт в соответствии с этой проблемой: github.com/tomblachut/svelte-intellij/issues /241
попробуйте заменить <script> на <script context = "module"> в Component.svelte. Я добавил это как ответ ниже.