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.
- Notice that the
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();