Skip to main content

SvelteKit はディレクトリベースのルーティングを使用しているので、モジュールやコンポーネントとそれを使用するルート(route)を一緒に配置するのがとても簡単です。経験則では、’コードは使う場所のすぐ近くに置く (put code close to where it’s used)’ です。

コードが複数の場所で使われることもよくあります。そのときに、インポートのプレフィックスに ../../../../ をつけなくても全てのルート(route)からアクセスできる置き場所があると便利です。SvelteKit では、src/lib ディレクトリがその場所です。このディレクトリに配置されているものは、$lib エイリアスを介して src にあるどのモジュールからもアクセスすることができます。

この演習にある両方の +page.svelte ファイルは src/lib/message.js をインポートしています。しかし /a/deeply/nested/route に移動すると、アプリが壊れます。なぜなら、プレフィックスが間違っているからです。代わりに、 $lib/message.js を使用するように更新しましょう:

src/routes/a/deeply/nested/route/+page
<script>
	import { message } from '$lib/message.js';
</script>

<h1>a deeply nested route</h1>
<p>{message}</p>

src/routes/+page.svelte も同じようにしましょう:

src/routes/+page
<script>
	import { message } from '$lib/message.js';
</script>

<h1>home</h1>
<p>{message}</p>

Edit this page on GitHub

1
2
3
4
5
6
<script>
	import { message } from '../lib/message.js';
</script>
 
<h1>home</h1>
<p>{message}</p>