mirror of
https://github.com/flarum/framework.git
synced 2024-11-25 08:43:21 +08:00
229a7affa5
* 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 |
||
---|---|---|
.. | ||
src | ||
tests | ||
.gitignore | ||
.prettierrc.json | ||
babel.config.cjs | ||
LICENSE | ||
package.json | ||
README.md |
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