Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sveltejs/component-template
A base for building shareable Svelte components
https://github.com/sveltejs/component-template
Last synced: about 1 month ago
JSON representation
A base for building shareable Svelte components
- Host: GitHub
- URL: https://github.com/sveltejs/component-template
- Owner: sveltejs
- Created: 2018-04-03T15:54:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-07-21T22:50:12.000Z (over 2 years ago)
- Last Synced: 2024-04-23T11:32:04.052Z (7 months ago)
- Language: JavaScript
- Size: 14.6 KB
- Stars: 552
- Watchers: 21
- Forks: 76
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-svelte - component-template - A base for building shareable components. (Scaffold / Miscellaneous)
README
*Psst — looking for a more complete solution? Check out [SvelteKit](https://kit.svelte.dev) and its [package command](https://kit.svelte.dev/docs/packaging) which gives you more built-in features like TypeScript transpilation, type definition generation and a built-in playground to test your library.*
*Looking for an app template instead? Go here --> [sveltejs/template](https://github.com/sveltejs/template)*
---
# component-template
A base for building shareable Svelte components. Clone it with [degit](https://github.com/Rich-Harris/degit):
```bash
npx degit sveltejs/component-template my-new-component
cd my-new-component
npm install # or yarn
```Your component's source code lives in `src/Component.svelte`.
You can create a package that exports multiple components by adding them to the `src` directory and editing `src/index.js` to reexport them as named exports.
TODO
* [ ] some firm opinions about the best way to test components
* [ ] update `degit` so that it automates some of the setup work## Setting up
* Run `npm init` (or `yarn init`)
* Replace this README with your own## Consuming components
Your package.json has a `"svelte"` field pointing to `src/index.js`, which allows Svelte apps to import the source code directly, if they are using a bundler plugin like [rollup-plugin-svelte](https://github.com/sveltejs/rollup-plugin-svelte) or [svelte-loader](https://github.com/sveltejs/svelte-loader) (where [`resolve.mainFields`](https://webpack.js.org/configuration/resolve/#resolve-mainfields) in your webpack config includes `"svelte"`). **This is recommended.**
For everyone else, `npm run build` will bundle your component's source code into a plain JavaScript module (`dist/index.mjs`) and a UMD script (`dist/index.js`). This will happen automatically when you publish your component to npm, courtesy of the `prepublishOnly` hook in package.json.