2019-09-19 03:07:24 -04:00
|
|
|
## Debugging Superset plugins in Superset app
|
|
|
|
|
|
|
|
### Activating plugins for local development
|
|
|
|
|
|
|
|
1. Enable `npm link` for the package.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cd superset-ui
|
|
|
|
cd packages/superset-ui-chart
|
|
|
|
npm link
|
|
|
|
```
|
|
|
|
|
|
|
|
2. Link the local package to `incubator-superset`.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cd incubator-superset
|
|
|
|
cd superset/assets
|
|
|
|
npm link @superset-ui/chart \# use package name in package.json, not directory name
|
|
|
|
```
|
|
|
|
|
2020-01-28 18:15:31 -05:00
|
|
|
3. After npm link complete, update the import statements in Superset.
|
2019-09-19 03:07:24 -04:00
|
|
|
|
|
|
|
Instead of
|
|
|
|
|
|
|
|
```js
|
|
|
|
import { xxx } from '@superset-ui/plugin-chart-horizon';
|
|
|
|
```
|
|
|
|
|
|
|
|
which will point to the transpiled code.
|
|
|
|
|
|
|
|
do refer to `src`
|
|
|
|
|
|
|
|
```js
|
2020-01-28 18:15:31 -05:00
|
|
|
import { xxx } from '@superset-ui/plugin-chart-horizon/src';
|
2019-09-19 03:07:24 -04:00
|
|
|
```
|
|
|
|
|
|
|
|
4. After that you can run `dev-server` as usual.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
npm run dev-server
|
|
|
|
```
|
|
|
|
|
2020-01-28 18:15:31 -05:00
|
|
|
Now when you change the code in `@superset-ui`, it will update the app immediately similar to code
|
|
|
|
inside `incubator-superset`.
|
2019-09-19 03:07:24 -04:00
|
|
|
|
|
|
|
### Deactivating plugins for local development
|
|
|
|
|
|
|
|
1. Change the `import` statements back.
|
|
|
|
|
|
|
|
2. Unlink the package from `incubator-superset`.
|
|
|
|
|
|
|
|
```cd incubator-superset
|
|
|
|
cd superset/assets
|
|
|
|
npm unlink @superset-ui/chart
|
|
|
|
```
|
|
|
|
|
2020-01-28 18:15:31 -05:00
|
|
|
Note: Quite often, `npm link` mess up your `node_modules` and the `unlink` command above does not
|
|
|
|
work correctly, making webpack build fails or other unexpected behaviors. If that happens, just
|
|
|
|
delete your `node_modules` and `npm install` from scratch.
|
2019-09-19 03:07:24 -04:00
|
|
|
|
|
|
|
3. Clean up global link.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cd superset-ui
|
|
|
|
cd packages/superset-ui-chart
|
|
|
|
npm unlink
|
|
|
|
```
|