mirror of
https://github.com/flarum/framework.git
synced 2025-03-06 02:01:34 +08:00
58 lines
1.5 KiB
Markdown
Executable File
58 lines
1.5 KiB
Markdown
Executable File
# Webpack config for Flarum JS/TS compilation
|
|
|
|
This package generates a [Webpack](https://webpack.js.org) config object that will compile JavaScript for use in Flarum.
|
|
|
|
## Usage
|
|
|
|
**webpack.config.js**
|
|
|
|
```js
|
|
var config = require('flarum-webpack-config');
|
|
|
|
module.exports = config(options);
|
|
```
|
|
|
|
To merge in custom Webpack config options, use [webpack-merge](https://www.npmjs.com/package/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:
|
|
|
|
```json
|
|
{
|
|
"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](https://github.com/flarum/flarum-tsconfig)
|
|
|
|
## Options
|
|
|
|
### `useExtensions`
|
|
|
|
`Array<string>`, defaults to `[]`.
|
|
|
|
An array of extensions whose modules should be made available. This is a shortcut to add [`externals`](https://webpack.js.org/configuration/externals/) configuration for extension modules. Imported extension modules will not be bundled, but will instead refer to the extension's exports included in the Flarum runtime (ie. `flarum.extensions["vendor/package"]`).
|
|
|
|
For example, to access the Tags extension module within your extension:
|
|
|
|
**forum.js**
|
|
|
|
```js
|
|
import { Tag } from '@flarum/tags/forum';
|
|
```
|
|
|
|
**webpack.config.js**
|
|
|
|
```js
|
|
module.exports = config({
|
|
useExtensions: ['flarum/tags'],
|
|
});
|
|
```
|