The below instructions run EUI's documentation site locally, with any changes made in src/
reflected. On local, EUI's favicon will be gray instead of colored.
Important
This repository is a monorepo, meaning that it contains sources of multiple packages within a single git repository. You can find all packages in the packages
directory.
When dealing with EUI (@elastic/eui
package), most of the work will be done from within the packages/eui
directory.
We depend upon the version of node defined in .nvmrc.
You will probably want to install a node version manager. nvm is recommended.
To install and use the correct node version with nvm
:
nvm install
EUI uses yarn
for dependency management. We use npm
for release purposes only.
EUI only uses yarn@v1 (classic), and not yarn v2 or above. Ensure you are on the correct version via yarn -v
before installing all dependencies:
yarn
If you're on an Apple arm64 machine and receive an error on yarn
about Puppeteer/the chromium binary not being available, you have two options:
- If you don't need to run Puppeteer tests locally:
- Paste
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
into your terminal as an environment variable
- Paste
- If you do need need to run Puppeteer locally:
- Follow these steps to install the Chromium binary globally and update your
~/.zshrc
.
- Follow these steps to install the Chromium binary globally and update your
Go to packages/eui
directory:
cd packages/eui
You can run the documentation locally at http://localhost:8030/ with the following command:
yarn start
If another process is already listening on port 8030, the next free port will be used. Alternatively, you can specify a port:
yarn start --port 9000
If you're developing in VSCode and you are using the ESLint
extension for VSCode you will notice that ESLint is showing errors about not finding config files since the monorepo setup changes.
To fix this add eslint.workingDirectories
to your VSCode settings and pass all working directories as relative paths.
{
"eslint.workingDirectories": ["./packages/eui"]
}