cm-web-modules

Collection of clean and small ES6 modules for the web

Usage no npm install needed!

<script type="module">
  import cmWebModules from 'https://cdn.skypack.dev/cm-web-modules';
</script>

README

cm-web-modules – Library of ES6 Web Modules

cm-web-modules is a library of JavaScript ES6 (ECMAScript 6) modules, used for coding chessmail.

The main purpose of cm-web-modules is, to prevent the usage of large libraries, and to provide needed functionality with the smallest and cleanest amount of code possible.

The cm-web-modules modules have no external dependencies, they don't use jQuery or other frameworks. They are written with modern vanilla JavaScript in ECMAScript 6 syntax.

The cm-web-modules modules are:

LibraryManager

The LibraryManager is the glue between the web-modules.

It is configured in postinstall.js. Add postinstall.js to the automtically excuted install-scripts from npm by adding it to package.json like this

package.json

"scripts": {
    "test": "mocha --require babel-core/register ./test/*.js",
    "postinstall": "node postinstall.js"
  }

In postinstall.js, add the used modules via manager.addProject("module-name")

The source of the module is then copied to PROJECT_ROOT/lib/modules/name. It provides the same include-folder (/lib) for the local and for the via npm installed modules.

You must call npm install after every npm update, because it is only automatically started by the initial install.

Example postinstall.js

const LibraryManager = require("cm-web-modules/src/LibraryManager.js")
const manager = new LibraryManager(__dirname)

manager.addProject("cm-web-modules")
manager.addProject("chess.js", "", "chess.js")