All Projects → knockout → Tko

knockout / Tko

Licence: other
🥊 Technical Knockout – The Monorepo for Knockout.js (4.0+)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Tko

San
A fast, portable, flexible JavaScript component framework
Stars: ✭ 4,514 (+1888.55%)
Mutual labels:  framework, mvvm, frontend
Front End Web Development Resources
This repository contains content which will be helpful in your journey as a front-end Web Developer
Stars: ✭ 3,452 (+1420.7%)
Mutual labels:  framework, frontend, frontend-framework
Quasar
An experimental rust-to-{wasm,asmjs} frontend framework.
Stars: ✭ 180 (-20.7%)
Mutual labels:  framework, frontend, frontend-framework
Displayjs
A simple JavaScript framework for building ambitious UIs 😊
Stars: ✭ 590 (+159.91%)
Mutual labels:  framework, frontend, frontend-framework
Portfolio Generator
JS framework to dynamically generate a portfolio site from a JSON file
Stars: ✭ 135 (-40.53%)
Mutual labels:  framework, frontend
Javascript Code Challenges
A collection of JavaScript modern interview code challenges for beginners to experts
Stars: ✭ 2,710 (+1093.83%)
Mutual labels:  frontend, frontend-framework
Ioing
Implement the solutions of performance improvement and componentization for your SPA (single page application) products with this Progressive Web App Development Engine.
Stars: ✭ 224 (-1.32%)
Mutual labels:  framework, mvvm
Tawian Frontend
A markdowny CSS framework
Stars: ✭ 167 (-26.43%)
Mutual labels:  framework, frontend
Awesome Seed Rs
A curated list of awesome things related to Seed
Stars: ✭ 101 (-55.51%)
Mutual labels:  framework, frontend
Lazy
Kule Lazy4 / CSS Framework
Stars: ✭ 147 (-35.24%)
Mutual labels:  framework, frontend
Angular Ru Interview Questions
Вопросы на собеседовании по Angular
Stars: ✭ 224 (-1.32%)
Mutual labels:  mvvm, frontend
Bulmaswatch
Themes for Bulma
Stars: ✭ 1,525 (+571.81%)
Mutual labels:  framework, frontend
Ionic Framework
A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.
Stars: ✭ 45,802 (+20077.09%)
Mutual labels:  framework, frontend
Knockout Spa
A mini but full-fledged SPA framework and boilerplate to build SPAs fast and scalable
Stars: ✭ 145 (-36.12%)
Mutual labels:  framework, mvvm
Cyclow
A reactive frontend framework for JavaScript
Stars: ✭ 105 (-53.74%)
Mutual labels:  framework, frontend
Uibench
UI Benchmark
Stars: ✭ 163 (-28.19%)
Mutual labels:  framework, frontend
Fe
前端热门文章阅读
Stars: ✭ 174 (-23.35%)
Mutual labels:  framework, frontend
Strudel
A front-end framework for the back-end powered web
Stars: ✭ 180 (-20.7%)
Mutual labels:  framework, frontend
Vue.py
Pythonic Vue.js
Stars: ✭ 223 (-1.76%)
Mutual labels:  framework, frontend
Akane
Lightweight native iOS MVVM framework
Stars: ✭ 92 (-59.47%)
Mutual labels:  framework, mvvm

TKO (“Technical Knockout”)

npm version Join the chat at https://gitter.im/knockout/tko Libscore devDependency Status Circle CI Coverage Status JavaScript Style Guide

TKO houses the monorepo of Knockout.

Getting Started

To install use one of the usual package managers e.g.

  • $ yarn add @tko/build.reference
  • $ npm install @tko/build.reference

Over CDN

Knockout Build

The Knockout build has some backwards compatibility that is not in the reference build. See the build differences, here: https://tko.io/3to4

It's available as @tko/build.knockout, and over CDN:

Using the Monorepo

Command Effect
$ git clone [email protected]:knockout/tko Clone the repository.
$ npm install -g yarn otherwise Ensure yarn is globally available
$ yarn Install local node packages and link tko modules
$ yarn test Run all tests. See below.
$ yarn watch Run all tests and watch for changes. See below.
$ yarn build Build tko[.module][.es6][.min].js files, where .es6 version has not been transpiled
$ lerna publish Bump versions and publish to npm registry

Checkout package.json => scripts for more commands that can be executed with yarn {command}.

In each individual packages/*/ directory, you can also run (presuming rollup and karma are installed globally):

Command Effect
$ karma COMMAND ../../karma.conf.js [--once] Test the local package, where COMMAND is e.g. start or run
$ rollup -c ../../rollup.config.js Build the package into the local dist/

Testing with yarn test and yarn watch

The yarn test and yarn watch commands can be used in the root directory, where it will run across all tests, or alternatively in any packages/*/ directory to run tests specific to that package.

Optional arguments to yarn test include:

  • --sauce — use Sauce Labs to test a variety of platforms; requires an account at Sauce Labs and SAUCE_USERNAME and SAUCE_ACCESS_KEY to be set in the environment.
  • --noStartConnect — Do not start a new Sauce Connect proxy instance for every test; requires that Sauce Connect be already running.

visual.html

Note that running karma or rollup will create a visual.html file that shows the proportional size of imports into each package.

Objectives

TKO aims to become a base for future versions of Knockout. The objectives include:

  • Modularization into ES6 and separate projects, with compilation using an ES6 compiler like Rollup. This solves several problems with Knockout, including:
    • Some folks want to roll-their-own with e.g. removing components
    • Compilation is now with Closure compiler, which is actually transliterating – meaning the debug and minified versions have different code paths (mostly in the form of things exposed in debug being missing in the minified version)
    • The compilation of Knockout is just concatenation, leading to difficulties with maintainance, severance, and replacement
  • Documentation inline in the source code. This aims to make it easier to document, by making documentation adjacent to the code about-which it speaks. Also, we aim to have examples in the documentation.
  • A more comprehensive home page. The hope is to have something fun and fancy, and we have a rough prototype.
  • Better setup for plugins. The problems with Knockout include:
    • There's no central, searchable repository for knockout
    • What should be simple plugins (e.g. binding handlers or providers) are complex, including:
      • Built-ins have first-class access to quite a bit of good Knockout code, but plugins generally have second-class access and often have to duplicate Knockout internals
      • Quality plugins have lots of boilerplate for compilation, release, documentation, and testing

Next steps

There's an issue for that.

License

MIT license - http://www.opensource.org/licenses/mit-license.php.

Shout Outs

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].