Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rikuvan/svelte-custom-stores-demo
https://github.com/rikuvan/svelte-custom-stores-demo
Last synced: 18 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/rikuvan/svelte-custom-stores-demo
- Owner: RikuVan
- Created: 2019-12-01T08:42:38.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T02:09:02.000Z (almost 2 years ago)
- Last Synced: 2023-03-02T07:11:59.678Z (over 1 year ago)
- Language: HTML
- Size: 428 KB
- Stars: 22
- Watchers: 2
- Forks: 2
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Custom stores demo for blog post: [`Svelte custom stores: get the most for your $`](https://monad.fi/en/svelte-custom-stores/)
| Custom store | Branch with working example |
| ------------------------------- | --------------------------- |
| `basic_store.js` | master |
| `homemade_store.js` | master |
| `observable_store.js` | master |
| `reducer_store.js` | reducer_store |
| `redux-store.js` | redux_store |
| `immer_store.js` | immer_store |
| `immer_actions_store.js` | immer_actions_store |
| `simple-state-machine-store.js` | simple_state_machine_store |
| `xtate_store.js` | xstate_store |## 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"
```## 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
```