1
0
mirror of https://github.com/flarum/core.git synced 2025-08-04 15:37:51 +02:00

Add useExtensions option

This commit is contained in:
Toby Zerner
2018-06-16 14:34:38 +09:30
parent 7975757829
commit 2c90164a35
2 changed files with 40 additions and 1 deletions

View File

@@ -9,7 +9,32 @@ This package generates a [Webpack](https://webpack.js.org) config object that wi
```js
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).
## 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']
});
```

View File

@@ -55,6 +55,20 @@ module.exports = function(options = {}) {
'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.
function(context, request, callback) {
let matches;