/dash-core-components

A dash component starter pack :stars:

Primary LanguageJavaScriptMIT LicenseMIT

Dash Core Components

This package provides the core React component suite for Dash.

CircleCI

Development

The dash package contains some tools to build components and drive the bundles build process. To avoid the circular dependency situation, we don't add dash as a required install in the dash-core-components setup. But, in order to do development locally, you need to install dash before everything.

  1. Install the dependencies with:
# it's recommended to install your python packages in a virtualenv
# python 2
$ pip install virtualenv --user && virtualenv venv && . venv/bin/activate
# python 3
$ python -m venv venv && . venv/bin/activate

# make sure dash is installed with dev and testing dependencies
$ pip install dash[dev,testing]  # in some shells you need \ to escape []

# run the build process
$ npm i --ignore-scripts && npm run build

# install dcc in editable mode
$ pip install -e .

Demo server

You can start up a demo development server to see a demo of the rendered components:

$ npm start

You have to maintain the list of components in demo/Demo.react.js.

Code quality and tests

To run integration tests (test_integration.py)

You can run the Selenium integration tests with the

npm test

command, and the Jest unit tests with the

npm run test-unit

Testing your components in Dash

  1. Run the build watcher by running $ npm run build:watch

  2. Run the dash layout you want to test

     # Import dash_core_components to your layout, then run it:
     $ python my_dash_layout.py
    

Uninstalling python package locally

$ npm run uninstall-local

Publishing

There's an npm script that will handle publish, provided you have the right credentials. You can run it by running

$ npm run publish-all

See the Publishing New Components/Features section of the Contributing guide for step-by-step instructions on publishing new components.

Dash Component Boilerplate

See the dash-component-boilerplate repo for more information.

Big Thanks

Cross-browser Testing Powered by image