mirror of
https://github.com/flarum/core.git
synced 2025-08-04 23:47:32 +02:00
Add useExtensions option
This commit is contained in:
@@ -9,7 +9,32 @@ This package generates a [Webpack](https://webpack.js.org) config object that wi
|
|||||||
```js
|
```js
|
||||||
var config = require('flarum-webpack-config');
|
var config = require('flarum-webpack-config');
|
||||||
|
|
||||||
module.exports = config();
|
module.exports = config(options);
|
||||||
```
|
```
|
||||||
|
|
||||||
To merge in custom Webpack config options, use [webpack-merge](https://www.npmjs.com/package/webpack-merge).
|
To merge in custom Webpack config options, use [webpack-merge](https://www.npmjs.com/package/webpack-merge).
|
||||||
|
|
||||||
|
## 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/flarum-ext-tags/forum';
|
||||||
|
```
|
||||||
|
|
||||||
|
**webpack.config.js**
|
||||||
|
|
||||||
|
```js
|
||||||
|
module.exports = config({
|
||||||
|
useExtensions: ['flarum/flarum-ext-tags']
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
@@ -55,6 +55,20 @@ module.exports = function(options = {}) {
|
|||||||
'jquery': 'jQuery',
|
'jquery': 'jQuery',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
function() {
|
||||||
|
const externals = {};
|
||||||
|
|
||||||
|
if (options.useExtensions) {
|
||||||
|
for (const extension of options.useExtensions) {
|
||||||
|
externals['@'+extension] =
|
||||||
|
externals['@'+extension+'/forum'] =
|
||||||
|
externals['@'+extension+'/admin'] = "flarum.extensions['"+extension+"']";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return externals;
|
||||||
|
}(),
|
||||||
|
|
||||||
// Support importing old-style core modules.
|
// Support importing old-style core modules.
|
||||||
function(context, request, callback) {
|
function(context, request, callback) {
|
||||||
let matches;
|
let matches;
|
||||||
|
Reference in New Issue
Block a user