Skip to content

Commit

Permalink
Added gitpod setup
Browse files Browse the repository at this point in the history
  • Loading branch information
svenefftinge committed Sep 28, 2020
1 parent f4176bb commit 90979d0
Show file tree
Hide file tree
Showing 4 changed files with 776 additions and 95 deletions.
14 changes: 14 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
tasks:
- init: npm install
command: |
export CLIENT_URL="$(gp url 35729)/livereload.js?snipver=1&port=443"
gp open src/App.svelte
npm run dev
ports:
- port: 5000
onOpen: open-preview
- port: 35729
onOpen: ignore
vscode:
extensions:
- svelte.svelte-vscode@102.1.0:lalX6WJBrpvP8QKZTiLUmQ==
106 changes: 13 additions & 93 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,105 +1,25 @@
*Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)*

---
# svelte app with Gitpod setup

# svelte app
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/gitpod-io/sveltejs-template)

This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template.
This is a project template for [Svelte](https://svelte.dev) apps.

To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
## Special config for Gitpod to make rollup work

```bash
npx degit sveltejs/template svelte-app
cd svelte-app
```

*Note that you will need to have [Node.js](https://nodejs.org) installed.*


## Get started

Install the dependencies...
Rollup needs to know how to reach the livereload endpoint. To configure that we need to do two things in our config:

```bash
cd svelte-app
npm install
1) set an environment variable
```

...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`.

If you're using [Visual Studio Code](https://code.visualstudio.com/) we recommend installing the official extension [Svelte for VS Code](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). If you are using other editors you may need to install a plugin in order to get syntax highlighting and intellisense.

## Building and running in production mode

To create an optimised version of the app:

```bash
npm run build
export CLIENT_URL="$(gp url 35729)/livereload.js?snipver=1&port=443"
```

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:

2) pass the env value to the livereload module in [`rollup.config.js:65`](https://github.com/gitpod-io/sveltejs-template/blob/587088aae9cb7331c27591b7f8cef9d58c037e46/rollup.config.js#L66-L69)
```js
"start": "sirv public --single"
!production && livereload({
watch: 'public',
clientUrl: process.env.CLIENT_URL
}),
```

## Using TypeScript
This will set `CLIENT_URL` with the workspace url of `35729` (default port for livereload).

This template comes with a script to set up a TypeScript development environment, you can run it immediately after cloning the template with:

```bash
node scripts/setupTypeScript.js
```

Or remove the script via:

```bash
rm scripts/setupTypeScript.js
```

## Deploying to the web

### With [Vercel](https://vercel.com)

Install `vercel` if you haven't already:

```bash
npm install -g vercel
```

Then, from within your project folder:

```bash
cd public
vercel deploy --name my-project
```

### 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
```
Loading

0 comments on commit 90979d0

Please sign in to comment.