General overview of PixelOven's file structure and recommended application structure for projects using our CLI.
The structure of this application should be considered living. As new requirements are needed this structure should be able to adapt to change. With that said there was a fair attempt to plan for the future. Below is a quick break down of this structure.
PixelOven Root structure
|Workspace for all applications including examples.|
|Docker setup files for custom images|
|General documentation for PixelOven and recommended best practices for using our CLI|
|I would hope this is understood ;) but this is also a transient directory used to store our general dependencies.|
|Workspace for all packages including examples.|
|Scripts used to help onboarding as well as our build process.|
PixelOven App structure
|Workspace for example applications to help with onboarding and testing.|
|Workspace for PixelOven sites and apps.|
PixelOven Package structure
|Workspace for example packages to help with onboarding, testing and abstracting common example logic.|
|Workspace for core CLI implementation.|
|Workspace for core logic common to any project|
|Workspace express abstractions to help support server based applications including our own dev server.|
|Workspace react abstractions for common react development|
|Workspace for storybook CLI logic|
|Workspace for webpack CLI logic|
It should be noted that we use both
.tsx. The general rule is any file that has JSX should use the
.tsx extension. Everything else should be
.jsx extensions are not supported as this is a pure TypeScript environment.
Beyond just the above extensions we have a few other designations. First we have
.stories.tsx which allow us to render out components in isolation. Second we have
.test.tsx which are part of our unit testing environment. Both of these designations are matched by pattern and should be present for all components.