- Bundle client application using Webpack.
- Serve client bundle in development (hot module replacement) and production (static build) mode.
- Start and supervise the server application.
- Allow the server application to mutate a shared model, and propagate these mutations to all connected clients.
- Allow clients to trigger RPC-style actions in the server application, which can mutate the shared state.
Datasole is based on (and abstracts): Webpack, Express, and WebSockets (via the
Datasole works well with frontend frameworks that support reacting to mutations on a shared data model, such as Vue.
The following features are supported when developing a Datasole application:
- Server application restart on source file changes
- Asset bundling via Webpack, with hot module reloading
- Templating languages: Pug, HTML
- Stylesheet languages: CSS, Sass (SCSS), LessCSS
- Image formats: SVG, GIF, PNG, JPG, ICO
.vuesingle-file Vue.js components.
npm install -g datasole
Datasole can also be used as a library without
Help for each option:
Start a new project by running
datasole init in an empty directory.
Start a development webserver:
Build a production version of the frontend:
Serve a production version of the frontend:
datasole run (requires
datasole build first)
The following environment variables affect Datasole's behavior.
|DATASOLE_LOG_OUTPUT_PATH||Path to write logs to, or stdout if blank|
||Datasole runtime logging level|
||User application logging level|
||Strip ANSI color codes from log messages|
The following logging levels are supported:
See the datasole-examples repository.
Package maintainer notes
- Webpack is not in
devDependenciesbecause recursive devDependencies are not currently installed by npm, and Webpack is required for developing the client and server components of any project. In the future, Webpack and other large dev dependencies can be moved to
devDependenciesby requiring a global npm install of
|Total lines of code||3437|
|Source lines||2536 (74%)|
|Installed node_modules size||199M|