https://github.com/uedatakeyuki/myfirstsmui
My trial of Svelte Material UI
https://github.com/uedatakeyuki/myfirstsmui
Last synced: 3 months ago
JSON representation
My trial of Svelte Material UI
- Host: GitHub
- URL: https://github.com/uedatakeyuki/myfirstsmui
- Owner: UedaTakeyuki
- Created: 2020-06-26T07:29:00.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-05T02:34:55.000Z (over 2 years ago)
- Last Synced: 2025-01-30T15:39:58.116Z (5 months ago)
- Language: JavaScript
- Size: 899 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 7
-
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. It lives at https://github.com/sveltejs/template.
To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit):
```bash
npx degit sveltejs/template svelte-app
cd svelte-app
```*Note that you will need to have [Node.js](https://nodejs.org) installed.*
## How did this project get started
Create Svelte scaffold by degit.
```
degit sveltejs/template myfirstsmui
```Install Smelte
```
npm install smelte
```Add following 2 blocks to rollup.config.js
```js:{7-9}
import svelte from 'rollup-plugin-svelte';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import livereload from 'rollup-plugin-livereload';
import { terser } from 'rollup-plugin-terser';// ↓ added for SMUI 2020.06.26 UEDA
import postcss from 'rollup-plugin-postcss';
// ↑ added for SMUIconst production = !process.env.ROLLUP_WATCH;
export default {
input: 'src/main.js',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
},
plugins: [
svelte({
// enable run-time checks when not in production
dev: !production,
// we'll extract any component CSS out into
// a separate file - better for performance
css: css => {
css.write('public/build/bundle.css');
}
}),// If you have external dependencies installed from
// npm, you'll most likely need these plugins. In
// some cases you'll need additional configuration -
// consult the documentation for details:
// https://github.com/rollup/plugins/tree/master/packages/commonjs
resolve({
browser: true,
dedupe: ['svelte']
}),
commonjs(),
// ↓ added for SMUI 2020.06.26 UEDA
postcss({
extract: true,
minimize: true,
use: [
['sass', {
includePaths: [
'./theme',
'./node_modules'
]
}]
]
}),
// ↑ added for SMUI
// In dev mode, call `npm run start` once
// the bundle has been generated
!production && serve(),// Watch the `public` directory and refresh the
// browser on changes when not in production
!production && livereload('public'),// If we're building for production (npm run build
// instead of npm run dev), minify
production && terser()
],
watch: {
clearScreen: false
}
};function serve() {
let started = false;return {
writeBundle() {
if (!started) {
started = true;require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
stdio: ['ignore', 'inherit', 'inherit'],
shell: true
});
}
}
};
}
```Install Sass
```bash:
npm install sass
```Install rollup-plugin-postcss
```bash:
npm install rollup-plugin-postcss
```Add theme/_smui-theme.scss blank file
Add following 3 lines to public/index.html
```html:
Svelte app
```
## 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
```