Hasan Altan Birler
04bc37de31
* Implement new hydration optimization During hydration, greedily pick nodes that exist in the original HTML that should not be detached. Detach the rest. * Implement optimal reordering during hydration During hydration we track the order in which children are claimed. Afterwards, rather than reordering them greedily one-by-one, we reorder all claimed children during the first append optimally. The optimal reordering first finds the longest subsequence of children that have been claimed in order. These children will not be moved. The rest of the children are reordered to where they have to go. This algorithm is guaranteed to be optimal in the number of reorderings. The hydration/head-meta-hydrate-duplicate test sample has been modified slightly. The order in which the <title> tag is being generated changed, which does not affect correctness. * Fix issue potentially causing extra reorders Not sorting children before executing the `insertBefore` calls in `init_hydrate` potentially caused extra `insertBefore` calls in `append` * Simplify`init_hydrate` sorting logic |
4 years ago | |
---|---|---|
.github | ci: increase timeouts to avoid random breaks (#6193) | 4 years ago |
site | Cleanup logos on homepage (#6409) | 4 years ago |
src | Improve hydration by reordering optimally (#6395) | 4 years ago |
test | Improve hydration by reordering optimally (#6395) | 4 years ago |
.editorconfig | chore: remove unnecessary indent_size from editorconfig (#5992) | 4 years ago |
.eslintignore | use common linting configuration (#4942) | 5 years ago |
.eslintrc.js | use common linting configuration (#4942) | 5 years ago |
.gitattributes | Add a linguist configuration (#5878) | 4 years ago |
.gitignore | Cleanup logos on homepage (#6409) | 4 years ago |
.mocharc.js | Use TypeScript in tests (#5433) | 4 years ago |
CHANGELOG.md | update changelog | 4 years ago |
CONTRIBUTING.md | Better surface RFC process (#5295) | 5 years ago |
LICENSE.md | rename LICENSE to LICENSE.md (#6239) | 4 years ago |
README.md | rename LICENSE to LICENSE.md (#6239) | 4 years ago |
check_publish_env.js | work around publishing issue with npm v7 (#5983) | 4 years ago |
package-lock.json | Bump glob-parent from 5.1.1 to 5.1.2 (#6390) | 4 years ago |
package.json | -> v3.38.2 | 4 years ago |
register.js | Log warnings in svelte/register when in dev-mode (#4365) | 5 years ago |
rollup.config.js | fix: add missing `walk` type in compiler.d.ts (#5696) | 4 years ago |
tsconfig.json | make TypeScript ignore global typings (#5704) | 4 years ago |
README.md
What is Svelte?
Svelte is a new way to build web applications. It's a compiler that takes your declarative components and converts them into efficient JavaScript that surgically updates the DOM.
Learn more at the Svelte website, or stop by the Discord chatroom.
Supporting Svelte
Svelte is an MIT-licensed open source project with its ongoing development made possible entirely by fantastic volunteers. If you'd like to support their efforts, please consider:
Funds donated via Open Collective will be used for compensating expenses related to Svelte's development such as hosting costs. If sufficient donations are received, funds may also be used to support Svelte's development more directly.
Development
Pull requests are encouraged and always welcome. Pick an issue and help us out!
To install and work on Svelte locally:
git clone https://github.com/sveltejs/svelte.git
cd svelte
npm install
Do not use Yarn to install the dependencies, as the specific package versions in
package-lock.json
are used to build and test Svelte.
To build the compiler and all the other modules included in the package:
npm run build
To watch for changes and continually rebuild the package (this is useful if you're using npm link to test out changes in a project locally):
npm run dev
The compiler is written in TypeScript, but don't let that put you off — it's basically just JavaScript with type annotations. You'll pick it up in no time. If you're using an editor other than Visual Studio Code, you may need to install a plugin in order to get syntax highlighting and code hints, etc.
Running Tests
npm run test
To filter tests, use -g
(aka --grep
). For example, to only run tests involving transitions:
npm run test -- -g transition
svelte.dev
The source code for https://svelte.dev, including all the documentation, lives in the site directory. The site is built with Sapper.
Is svelte.dev down?
Probably not, but it's possible. If you can't seem to access any .dev
sites, check out this SuperUser question and answer.