theforeman javascript packages
This project is a monorepo using lerna to host more than one package. Projects maintained by https://theforeman.org.
The work on this repository started based on a discussion on community.theforeman.org about refactoring the JavaScript stack of Foreman.
- See discussion.
- Watch the deep dive explaining the redesign.
Foreman and its plugins use many of the same JavaScript dependencies (npm packages). The main purpose of vendor
is to gather these common dependencies into a single package.
- @theforeman/vendor-core - This is the actual list of common dependencies. Is a dependency of
vendor
andvendor-dev
. - @theforeman/vendor - The dependencies in
vendor-core
, bundled to be used in Webpack. - @theforeman/vendor-dev - The dependencies in
vendor-core
, unbundled for use in development.
Note: In Foreman & plugins JavaScript code, you do not need to import anything explicitly from vendor (); you can continue to import all modules like normal (import react from '@theforeman/vendor'
import react from 'react';
).
In your CSS code, the @import
statements do need to be explicit; see this part of @theforeman/vendor readme.
- @theforeman/builder - Provides scripts (
npm run build
) to build production and development bundle files for Foreman core and plugins. - @theforeman/test - Adds theforeman testing tools to you project, including jest, enzyme and other utils.
- @theforeman/eslint-plugin-foreman - Shared
eslint
configuration. Opinionated styling for Foreman core and plugins. - @theforeman/eslint-plugin-rules - Shared
eslint
custom rules. Opinionated styling for Foreman core and plugins. - @theforeman/find-foreman - Package to find full path of Foreman relative to Foreman plugin.
Please check out the CONTRIBUTING.md
, the roadmap.md
and the open issues.