Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/antony/svelte-typescript
Trying out official Svelte TypeScript support
https://github.com/antony/svelte-typescript
Last synced: 17 days ago
JSON representation
Trying out official Svelte TypeScript support
- Host: GitHub
- URL: https://github.com/antony/svelte-typescript
- Owner: antony
- Created: 2020-06-27T19:42:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-21T03:46:43.000Z (over 2 years ago)
- Last Synced: 2024-10-11T12:48:28.104Z (about 1 month ago)
- Language: JavaScript
- Size: 70.3 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
_Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)_
---
# svelte app
This is a project template for [Svelte](https://svelte.dev) apps with typescript. It lives at https://github.com/dummdidumm/template.
To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
```bash
npx degit dummdidumm/template svelte-typescript-app
cd svelte-typescript-app
```_Note that you will need to have [Node.js](https://nodejs.org) installed._
## Get started
Install the dependencies...
```bash
cd svelte-app
npm install
```...then start [Rollup](https://rollupjs.org):
```bash
npm run dev
```Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes.
By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`.
## Building and running in production mode
To create an optimised version of the app:
```bash
npm run build
```You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com).
## Single-page app mode
By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere.
If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for _any_ path. You can make it so by editing the `"start"` command in package.json:
```js
"start": "sirv public --single"
```## Differences to the javascript version
- Following npm packages are added: `svelte-preprocess typescript tslib @rollup/plugin-typescript`
- A `tsconfig.json` is added
- `rollup.config.js` is enhanced:```js
// ...
import sveltePreprocess from 'svelte-preprocess';
import typescript from '@rollup/plugin-typescript';// ...
plugins: [
svelte({
// ...
preprocess: sveltePreprocess(), // <--
}),// ...
commonjs(),
typescript(), // <-- added below commonjs
// ...
```## Deploying to the web
### With [now](https://zeit.co/now)
Install `now` if you haven't already:
```bash
npm install -g now
```Then, from within your project folder:
```bash
cd public
now deploy --name my-project
```As an alternative, use the [Now desktop client](https://zeit.co/download) and simply drag the unzipped project folder to the taskbar icon.
### With [surge](https://surge.sh/)
Install `surge` if you haven't already:
```bash
npm install -g surge
```Then, from within your project folder:
```bash
npm run build
surge public my-project.surge.sh
```