framework/js-packages/webpack-config
Sami Mazouz 229a7affa5
feat: Code Splitting (#3860)
* feat: configure webpack to allow splitting chunks
* feat: `JsDirectoryCompiler` and expose js assets URL
* chore: support es2020 dynamic importing
* feat: control which URL to fetch chunks from
* feat: allow showing async modals & split 'LogInModal'
* feat: split `SignUpModal`
* feat: allow rendering async pages & split `UserSecurityPage`
* fix: module might not be listed in chunk
* feat: lazy load user pages
* feat: track the chunk containing each module
* chore: lightly warn
* chore: split `Composer`
* feat: add common frontend (for split common chunks)
* fix: jsDoc typing imports should be ignored
* feat: split `PostStream` `ForgotPasswordModal` and `EditUserModal`
* fix: multiple inline async imports not picked up
* chore: new `common` frontend assets only needs a jsdir compiler
* feat: add revision hash to chunk import URL
* fix: nothing to split for `admin` frontend yet
* chore: cleanup registry API
* chore: throw an error in debug mode if attempting to import a non-loaded module
* feat: defer `extend` & `override` until after module registration
* fix: plugin not picking up on all module sources
* fix: must override default chunk loader function from webpack plugin
* feat: split tags `TagDiscussionModal` and `TagSelectionModal`
* fix: wrong export name
* feat: import chunked modules from external packages
* feat: extensions compatibility
* feat: Router frontend extender async component
* chore: clean JS output path (removes stale chunks)
* fix: common chunks also need flushing
* chore: flush backend stale chunks
* Apply fixes from StyleCI
* feat: loading alert when async page component is loading
* chore: `yarn format`
* chore: typings
* chore: remove exception
* Apply fixes from StyleCI
* chore(infra): bundlewatch
* chore(infra): bundlewatch split chunks
* feat: split text editor
* chore: tag typings
* chore: bundlewatch
* fix: windows paths
* fix: wrong planned ext import format
2023-08-02 17:57:57 +01:00
..
src feat: Code Splitting (#3860) 2023-08-02 17:57:57 +01:00
tests feat: export registry (#3842) 2023-06-29 18:57:53 +01:00
.gitignore feat: add support for Plug'n'Play package managers (#14) 2021-11-08 23:53:18 +00:00
.prettierrc.json Fix Flarum on iOS 10 and below (#9) 2021-05-04 00:39:10 +01:00
babel.config.cjs feat: export registry (#3842) 2023-06-29 18:57:53 +01:00
LICENSE Update copyright year 2021-05-15 00:54:10 +01:00
package.json feat: export registry (#3842) 2023-06-29 18:57:53 +01:00
README.md feat: export registry (#3842) 2023-06-29 18:57:53 +01:00

Webpack config for Flarum JS/TS compilation

This package generates a Webpack config object that will compile JavaScript for use in Flarum.

Usage

webpack.config.js

var config = require('flarum-webpack-config');

module.exports = config(options);

To merge in custom Webpack config options, use webpack-merge.

Webpack Bundle Analyzer

You can view a visual representation of your JS Bundle by building with Webpack Bundle Analyzer.

Add another build script to your package.json like the one below:

{
  "analyze": "npx cross-env ANALYZER=true npm run build"
}

Typescript

You'll need to configure a tsconfig.json file to ensure your IDE sets up Typescript support correctly.

For details about this, see the flarum/flarum-tsconfig repository