From 2ec99a82389df228060d757154d1008984525cde Mon Sep 17 00:00:00 2001 From: Evan Rusackas Date: Sat, 14 Sep 2019 17:42:38 -0700 Subject: [PATCH] docs: add npm link documentation for local development (#201) * NPM link docs (hat tip to Krist) * formatting changes in prior commit --- .../plugins/superset-ui-plugins/README.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/README.md b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/README.md index 30cbef954baa..90f2fa73550a 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/README.md +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/superset-ui-plugins/README.md @@ -86,6 +86,8 @@ superset-ui/ ... ``` + + ### Installation 1. clone this repo @@ -97,6 +99,69 @@ yarn install yarn build ``` +### 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 +``` + +3) After npm link complete, update the import statements in Superset. + +Instead of + +```js +import { xxx } from '@superset-ui/plugin-chart-horizon'; +``` + +which will point to the transpiled code. + +do refer to `src` + +```js +import { xxx } from '@superset-ui/plugin-chart-horizon/src' +``` + +4. After that you can run `dev-server` as usual. + +```sh +npm run dev-server +``` + +Now when you change the code in `@superset-ui`, it will update the app immediately similar to code inside `incubator-superset`. + +### 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 +``` + +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. + +3. Clean up global link. + +```sh +cd superset-ui +cd packages/superset-ui-chart +npm unlink +``` + ### Builds, linting, and testing Each package defines its own build config, linting, and testing. You can have lerna run commands