2020-03-27 20:59:38 +00:00
|
|
|
// Note: You must restart bin/webpack-dev-server for changes to take effect
|
2020-04-26 17:49:20 +00:00
|
|
|
console.log('Running in development mode'); // eslint-disable-line no-console
|
2020-03-27 20:59:38 +00:00
|
|
|
|
2020-04-14 20:45:38 +00:00
|
|
|
const { resolve } = require('path');
|
2020-03-27 20:59:38 +00:00
|
|
|
const merge = require('webpack-merge');
|
|
|
|
const sharedConfig = require('./shared');
|
|
|
|
const { settings, output } = require('./configuration');
|
|
|
|
|
|
|
|
const watchOptions = {};
|
|
|
|
|
2020-04-21 18:34:18 +00:00
|
|
|
const backendUrl = process.env.BACKEND_URL || 'http://localhost:4000';
|
|
|
|
const patronUrl = process.env.PATRON_URL || 'http://localhost:5000';
|
|
|
|
const secureProxy = !(process.env.PROXY_HTTPS_INSECURE === 'true');
|
|
|
|
|
|
|
|
const backendEndpoints = [
|
|
|
|
'/api',
|
2020-04-22 01:42:19 +00:00
|
|
|
'/pleroma',
|
2020-04-21 18:34:18 +00:00
|
|
|
'/nodeinfo',
|
|
|
|
'/socket',
|
|
|
|
'/oauth',
|
2020-05-25 00:14:36 +00:00
|
|
|
'/auth/password',
|
2020-04-21 18:34:18 +00:00
|
|
|
'/.well-known/webfinger',
|
|
|
|
'/static',
|
2020-05-20 03:41:39 +00:00
|
|
|
'/emoji',
|
2020-04-21 18:34:18 +00:00
|
|
|
'/patron',
|
|
|
|
];
|
|
|
|
|
|
|
|
const makeProxyConfig = () => {
|
|
|
|
let proxyConfig = {};
|
|
|
|
backendEndpoints.map(endpoint => {
|
|
|
|
proxyConfig[endpoint] = {
|
|
|
|
target: backendUrl,
|
|
|
|
secure: secureProxy,
|
|
|
|
};
|
|
|
|
});
|
|
|
|
proxyConfig['/patron'] = {
|
|
|
|
target: patronUrl,
|
|
|
|
secure: secureProxy,
|
|
|
|
};
|
|
|
|
return proxyConfig;
|
|
|
|
};
|
2020-03-28 05:56:50 +00:00
|
|
|
|
2020-03-27 20:59:38 +00:00
|
|
|
if (process.env.VAGRANT) {
|
|
|
|
// If we are in Vagrant, we can't rely on inotify to update us with changed
|
|
|
|
// files, so we must poll instead. Here, we poll every second to see if
|
|
|
|
// anything has changed.
|
|
|
|
watchOptions.poll = 1000;
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = merge(sharedConfig, {
|
|
|
|
mode: 'development',
|
|
|
|
cache: true,
|
|
|
|
devtool: 'source-map',
|
|
|
|
|
|
|
|
stats: {
|
|
|
|
errorDetails: true,
|
|
|
|
},
|
|
|
|
|
|
|
|
output: {
|
|
|
|
pathinfo: true,
|
|
|
|
},
|
|
|
|
|
|
|
|
devServer: {
|
|
|
|
clientLogLevel: 'none',
|
|
|
|
compress: settings.dev_server.compress,
|
|
|
|
quiet: settings.dev_server.quiet,
|
|
|
|
disableHostCheck: settings.dev_server.disable_host_check,
|
|
|
|
host: settings.dev_server.host,
|
|
|
|
port: settings.dev_server.port,
|
|
|
|
https: settings.dev_server.https,
|
|
|
|
hot: settings.dev_server.hmr,
|
2020-03-28 02:20:56 +00:00
|
|
|
contentBase: resolve(__dirname, '..', settings.public_root_path),
|
2020-03-27 20:59:38 +00:00
|
|
|
inline: settings.dev_server.inline,
|
|
|
|
useLocalIp: settings.dev_server.use_local_ip,
|
|
|
|
public: settings.dev_server.public,
|
|
|
|
publicPath: output.publicPath,
|
|
|
|
historyApiFallback: {
|
|
|
|
disableDotRule: true,
|
|
|
|
},
|
|
|
|
headers: settings.dev_server.headers,
|
|
|
|
overlay: settings.dev_server.overlay,
|
|
|
|
stats: {
|
|
|
|
entrypoints: false,
|
|
|
|
errorDetails: false,
|
|
|
|
modules: false,
|
|
|
|
moduleTrace: false,
|
|
|
|
},
|
|
|
|
watchOptions: Object.assign(
|
|
|
|
{},
|
|
|
|
settings.dev_server.watch_options,
|
|
|
|
watchOptions
|
|
|
|
),
|
2020-03-28 02:20:56 +00:00
|
|
|
serveIndex: true,
|
2020-04-21 18:34:18 +00:00
|
|
|
proxy: makeProxyConfig(),
|
2020-03-27 20:59:38 +00:00
|
|
|
},
|
|
|
|
});
|