Следующая моя (упрощенная) структура проекта:
appname
|
|__src
| |__lib
| |__routes
|
|__jsconfig.json
В файле jsconfig.js у меня есть ключ путей с псевдонимом для папки «./src/lib» в виде $lib.
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"$lib": ["src/lib"],
"$lib/*": ["src/lib/*"],
}
},
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
}
Я хочу получить доступ к папке маршрутов с псевдонимом $routes так же, как $lib.
Но если я добавлю «$routes»: ["src/routes"] в приведенный выше файл JSON, sveltekit не сможет разрешить путь, начинающийся с '$routes/somefile'
Пример:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"$lib": ["src/lib"],
"$lib/*": ["src/lib/*"],
"$routes": ["src/routes"],
"$routes/*": ["src/routes/*"],
}
},
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
}
конечная точка.js
import { db } from '$routes/db';
Что я делаю не так?





Вы также должны указать сборщику использовать его в svelte.config.js.
kit: {
vite: {
resolve: {
alias: {
$routes: path.resolve('./src/routes')
}
}
}
}
Тем не менее, помните, что все файлы в папке маршрутов, за исключением тех, которые начинаются с символа подчеркивания _, считаются маршрутами. Итак, если у вас есть файл /src/routes/db.js, пользователь может перейти к http://yoursite.domain/db.
Очень редко есть какая-либо причина для импорта файла оттуда, и если вам нужно это сделать, это, вероятно, не маршрут или конечная точка, и вместо этого можно безопасно поместить lib
да, вы должны импортировать путь: import path from 'path'; следует сделать
Да, ты прав. Меня смутила файловая структура кода VS. Там небольшой отступ и вроде бы мои файлы hooks.js, db.js и другие лежат под роутами, но они в папке src. Но в любом случае, теперь мне нужно получить доступ к папке $src. И когда я добавляю $src: path.resolve('./src'), он говорит, что путь не определен. Что такое переменная пути здесь? Нужно ли мне его импортировать?