Skip to main content

Dev Mode

The dev-mode plugin adds many checks and validations to RxDB. This ensures that you use the RxDB API properly and so the dev-mode plugin should always be used when using RxDB in development mode.

  • Adds readable error messages.
  • Ensures that readonly JavaScript objects are not accidentally mutated.
  • Adds validation check for validity of schemas, queries, ORM methods and document fields.
    • Notice that the dev-mode plugin does not perform schema checks against the data see schema validation for that.
warning

The dev-mode plugin will increase your build size and decrease the performance. It must always be used in development. You should never use it in production.

import { addRxPlugin } from 'rxdb';
import { RxDBDevModePlugin } from 'rxdb/plugins/dev-mode';
addRxPlugin(RxDBDevModePlugin);

Usage with Node.jsโ€‹

async function createDb() {
if (process.env.NODE_ENV !== "production") {
await import('rxdb/plugins/dev-mode').then(
module => addRxPlugin(module.RxDBDevModePlugin)
);
}
const db = createRxDatabase( /* ... */ );
}

Usage with Angularโ€‹

import { isDevMode } from '@angular/core';

async function createDb() {
if (isDevMode()){
await import('rxdb/plugins/dev-mode').then(
module => addRxPlugin(module.RxDBDevModePlugin)
);
}

const db = createRxDatabase( /* ... */ );
// ...
}

Usage with webpackโ€‹

In the webpack.config.js:

module.exports = {
entry: './src/index.ts',
/* ... */
plugins: [
// set a global variable that can be accessed during runtime
new webpack.DefinePlugin({ MODE: JSON.stringify("production") })
]
/* ... */
};

In your source code:

declare var MODE: 'production' | 'development';

async function createDb() {
if (MODE === 'development') {
await import('rxdb/plugins/dev-mode').then(
module => addRxPlugin(module.RxDBDevModePlugin)
);
}
const db = createRxDatabase( /* ... */ );
// ...
}

Disable the dev-mode warningโ€‹

When the dev-mode is enabled, it will print a console.warn() message to the console so that you do not accidentally use the dev-mode in production. To disable this warning you can call the disableWarnings() function.

import { disableWarnings } from 'rxdb/plugins/dev-mode';
disableWarnings();

Disable the tracking iframeโ€‹

When used in localhost and in the browser, the dev-mode plugin can add a tracking iframe to the DOM. This is used to track the effectiveness of marketing efforts of RxDB. If you have premium access and want to disable this iframe, you can call setPremiumFlag() before creating the database.

import { setPremiumFlag } from 'rxdb-premium/plugins/shared';
setPremiumFlag();