我在 Svelte 做 SPA。它在本地和 Svelte REPL 上工作,其中显示了条件内的组件,但在我部署到 Gitlab Pages 时却没有。
# .gitlab-ci.yml
script:
- npm install
- npm run build
在我的情况下,App.svelte
我使用 asvelte:component
来始终渲染当前$screen
的footer
组件,如果屏幕是Payments
<script>
import { screen } from '../store.js' // current screen: Login, Profile, etc
import Login from './Login.svelte'
import Menu from '../components/Menu.svelte'
// Screens with Menu
const screens_menu = ['Payments']
// Default screen
$screen = Login
</script>
<main>
<svelte:component this={$screen} />
{#if screens_menu.includes($screen.name)}
<footer><Menu /></footer>
{/if}
</main>
在我的store.js
我有这个
import { writable } from 'svelte/store'
// Current Screen
export let screen = writable(null)
检查相同的示例
笔记
如果我使用组件屏幕本身而不是变量,name
一切都会按预期工作,但现在(可能)我正在重载(导入所有屏幕)。现在,它只是Payments
但它可能是更多的屏幕。
<script>
import { screen } from '../store.js'
import Payments from './Payments.svelte'
import Menu from '../components/Menu.svelte'
// Screens with Menu
const screens_menu = [Payments]
// ...
</script>
<main>
<svelte:component this={$screen} />
{#if screens_menu.includes($screen)}
<footer><Menu /></footer>
{/if}
</main>
我是否需要配置任何额外的东西,有人在部署后尝试类似的东西吗?
任何帮助将不胜感激:)