[TIMOB-27858] Webpack: Move configuration to independent packages
GitHub Issue | n/a |
---|---|
Type | Story |
Priority | None |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2020-08-25T00:36:54.000+0000 |
Affected Version/s | n/a |
Fix Version/s | n/a |
Components | Tooling |
Labels | n/a |
Reporter | Jan Vennemann |
Assignee | Jan Vennemann |
Created | 2020-04-21T17:11:09.000+0000 |
Updated | 2020-08-25T00:36:54.000+0000 |
Description
appcd-plugin-webpack has grown into huge monolithic package that contains the configuration and required dependencies for the different project types (Classic, Alloy, Vue, Angular). Refactoring this into independent packages that are installed per project gives several benefits:
* Better maintainability due to smaller packages and less dependencies.
* Only related dependencies like loaders and compilers are present in each package.
* Dependencies can be manages per project. The global appcd webpack plugin only provides the base configuration. The configuration for a specific project type is installed locally into the project. This allows to upgrade a single project to newer versions of e.g. Alloy, Vue or Angular.
* Out of the box warnings for missing peer dependencies.
*Project types*
*
@titanium-sdk/webpack-plugin-classic
* @titanium-sdk/webpack-plugin-alloy
* @titanium-sdk/webpack-plugin-vue
* @titanium-sdk/webpack-plugin-angular
*General plugins*
* @titanium-sdk/webpack-plugin-babel
Plugins containing configuration for a specific project type: Classic: https://github.com/appcelerator/webpack-plugin-classic Alloy: https://github.com/appcelerator/webpack-plugin-alloy Vue: https://github.com/appcelerator/webpack-plugin-vue Angular: Will be done in TIMOB-27800 Plugins to add new tooling to a project Babel: https://github.com/appcelerator/webpack-plugin-babel TypeScript: https://github.com/appcelerator/webpack-plugin-typescript
PR: https://github.com/appcelerator/appcd-plugin-webpack/pull/13
Closing.