playcanvas / pcui

UI component library for web-based tools
http://playcanvas.github.io/pcui
MIT License
670 stars 65 forks source link

Build process update #160

Closed ellthompson closed 2 years ago

ellthompson commented 2 years ago

Reconfigured the PCUI build process to extend it's support of modules. The build step now generates module index files in the dist folder which export all of the individual components. It includes export statements like the ones below:

export { default as TreeViewItem } from './TreeViewItem/index.mjs';
export { default as LabelGroup } from './LabelGroup/index.mjs';
export { default as GridView } from './GridView/index.mjs';
export { default as GridViewItem } from './GridViewItem/index.mjs';
export { default as ArrayInput } from './ArrayInput/index.mjs';
export { default as MenuItem } from './MenuItem/index.mjs';
export { default as Menu } from './Menu/index.mjs';
export { default as BindingBase } from './BindingBase/index.mjs';
export { default as BindingElementToObservers } from './BindingElementToObservers/index.mjs';
export { default as BindingObserversToElement } from './BindingObserversToElement/index.mjs';
export { default as BindingTwoWay } from './BindingTwoWay/index.mjs';

This means the full directory structure of the project is maintained in the dist folder (offering full ESM support in node and the browser) while still enabling the importing of individual components from the main module directory of the library.

The UMD version of PCUI is still available under dist/index.js. The react components are accessible from the moduledist/react/index.mjs, while all es6 element classes and binding classes are also available under the module dist/index.mjs.

The docs and readme have been updated to support this new build.

The package.json has been updated with main and module paths and a files list which defines what should be included in the npm bundle. I've removed the npm run pcui:publish script as we can now publish the library directly using the npm publish command.