mirror of
https://github.com/flarum/core.git
synced 2025-08-08 01:16:52 +02:00
Initial commit
This commit is contained in:
55
js-packages/webpack-config/index.js
Normal file
55
js-packages/webpack-config/index.js
Normal file
@@ -0,0 +1,55 @@
|
||||
const path = require('path');
|
||||
const webpack = require('webpack');
|
||||
|
||||
module.exports = function(options = {}) {
|
||||
const config = {
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
exclude: /node_modules/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: ['@babel/preset-env', '@babel/preset-react'],
|
||||
plugins: [
|
||||
['@babel/plugin-transform-runtime'],
|
||||
['@babel/plugin-proposal-class-properties'],
|
||||
['@babel/plugin-transform-react-jsx', {pragma: 'm'}]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
if (options.compat) {
|
||||
config.resolve = config.resolve || {};
|
||||
config.resolve.modules = [
|
||||
path.resolve(process.cwd(), 'src'),
|
||||
path.resolve(process.cwd(), '../lib'),
|
||||
path.resolve(process.cwd(), 'node_modules'),
|
||||
'node_modules'
|
||||
];
|
||||
}
|
||||
|
||||
if (options.compatPrefix) {
|
||||
config.resolve = config.resolve || {};
|
||||
config.resolve.alias = {
|
||||
[options.compatPrefix]: '.'
|
||||
};
|
||||
|
||||
config.externals = [
|
||||
function(context, request, callback) {
|
||||
let matches;
|
||||
if ((matches = /^flarum\/(.+)$/.exec(request)) && request.substr(0, options.compatPrefix.length) !== options.compatPrefix) {
|
||||
return callback(null, 'root flarum.compat[\'' + matches[1] + '\']');
|
||||
}
|
||||
callback();
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
return config;
|
||||
};
|
Reference in New Issue
Block a user