I want to use Svelte in my next project, due to its clean syntax and how nice is to work in it. Unfortunately, to deploy the app in my company I can’t use node
or anything like that on the server. I can only serve the app from nginx
as static files.
Is it possible in svelte? I can’t find anything that would allow me to do that, all solutions I’ve tried like @sveltejs/adapter-static
didn’t seem to generate it correctly to use it in this way. I can’t find any guide on how to do that on the web.
3
Answers
I think Libertas’ answer posted a couple of weeks after this is most likely what you’re looking for.
But I’ll leave the below here anyway in case it’s useful to you or someone else coming along later:
SvelteKit (from the Svelte core team) supports server-side rendering, and documents generating static sites:
(my emphasis)
If you aren’t using SvelteKit, you can just copy contents of
/build/
generated bynpm run build
. This should work.In order to pre-render a SvelteKit 1.0 static site you need to:
Install the static adapter with
npm i -D @sveltejs/adapter-static
Put the following in
svelte.config.js
devDependencies
inpackage.json
(you can remove the default adapter-auto):src/routes/+layout.js
– create the file if it does not exist:npm run build
The static files will be generated in the
build
directory.More details at https://kit.svelte.dev/docs/adapter-static and https://github.com/sveltejs/kit/tree/master/packages/adapter-static#sveltejsadapter-static