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
vendorandvendor-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
eslintconfiguration. Opinionated styling for Foreman core and plugins. - @theforeman/eslint-plugin-rules - Shared
eslintcustom 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.