A modernized fork of Knockout.js intended for ES6+ browsers only
npm install knockout-esnextv3.5.1xxx, where 3.5.1 is the initial Knockout version this library was forked off,
xxx the modifications since then.
ko.foo.bar references or assignments internally
ko.js being the only source of truth about what is exposed publicly (including legacy aliases)
ko.onError are setters in ko.js, so we gain full control over what can be overridden
ko.isObservable etc) in basicTypeCheckBehaviors.js
extend({notify: 'always'}) with observables/computeds, their current default OR* custom equalityComparer is
'always'.
valuesArePrimitiveAndEqual).
ko.exportSymbol)
rollup-plugin-inline-macros.js, allowing to "inline" frequently used helper functions & avoid function calls in hot code paths
knockout.js)
knockout.esm.js)
knockout.debug.js & knockout.debug.js.map, not part of the knockout-esnext NPM package)
PhantomJS
Grunt
ESLint for code quality checks
spec/runner.html),
build task before the next test-run:
shell script
npm run build
`
This will rebuild the build/knockout.debug.js used by runner.html.
* The debug version now has a sourcemap generated alongside it (knockout.debug.js.map),
so you can attach your IDE's debugger to e.g. runner.html and add breakpoints
inside the actual source files rather than the generated knockout.debug.js.
---
Knockout
Knockout is a JavaScript MVVM (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaScript and HTML. It uses observers to make your UI automatically stay in sync with an underlying data model, along with a powerful and extensible set of declarative bindings to enable productive development.
Getting started

Totally new to Knockout? The most fun place to start is the online interactive tutorials.
For more details, see
* Documentation on the project's website
* Online examples at http://knockoutjs.com/examples/
Downloading Knockout
You can download released versions of Knockout from the project's website.
For Node.js developers, Knockout is also available from npm - just run npm install knockout.
Building Knockout from sources
If you prefer to build the library yourself:
1. Clone the repo from GitHub
`sh
git clone https://github.com/knockout/knockout.git
cd knockout
`
2. Acquire build dependencies.
Make sure you have Node.js installed on your workstation. This is only needed to _build_ Knockout from sources. Knockout itself has no dependency on Node.js once it is built (it works with any server technology or none). Now run:
`sh
npm install
`
3. Start the build
`sh
npm run build
`
Now you'll find the built files in build/.
Running the tests
If you want to run the specs in Node.js
`sh
npm test
`
Or, if you want to run the specs in a browser (e.g., for debugging), simply open spec/runner.html` in your browser.