refactor: internal packages structure (#94)

* refactor: internal packages structure

* refactor: internal packages structure
This commit is contained in:
Christoffer Åström
2019-08-27 09:57:04 +02:00
committed by GitHub
parent 45eae91837
commit a57abf1ead
144 changed files with 38 additions and 40 deletions

View File

@@ -0,0 +1,85 @@
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const babelPath = require.resolve('babel-loader');
const babelPresetEnvPath = require.resolve('@babel/preset-env');
const babelPresetReactPath = require.resolve('@babel/preset-react');
const cfg = ({ srcDir, distDir, snPath, dev = false }) => {
const config = {
mode: dev ? 'development' : 'production',
entry: {
eRender: [path.resolve(srcDir, 'eRender')],
eDev: [path.resolve(srcDir, 'eDev')],
eHub: [path.resolve(srcDir, 'eHub')],
},
devtool: 'source-map',
output: {
path: distDir,
filename: '[name].js',
},
resolve: {
alias: {
snDefinition: snPath,
},
extensions: ['.js', '.jsx'],
},
externals: dev ? {} : 'snDefinition',
module: {
rules: [
{
test: /\.jsx?$/,
sideEffects: false,
include: [srcDir, /nucleus/, /ui\/icons/],
use: {
loader: babelPath,
options: {
presets: [
[
babelPresetEnvPath,
{
modules: false,
targets: {
browsers: ['last 2 chrome versions'],
},
},
],
babelPresetReactPath,
],
},
},
},
],
},
plugins: [
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eRender.html'),
filename: 'eRender.html',
chunks: ['eRender'],
}),
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eDev.html'),
filename: 'eDev.html',
chunks: ['eDev'],
}),
new HtmlWebpackPlugin({
template: path.resolve(srcDir, 'eHub.html'),
filename: 'eHub.html',
chunks: ['eHub'],
}),
],
};
return config;
};
if (!process.env.DEFAULTS) {
module.exports = cfg;
} else {
module.exports = cfg({
srcDir: path.resolve(__dirname, '../web'),
distDir: path.resolve(__dirname, '../dist'),
snPath: path.resolve(__dirname, 'placeholder'),
dev: false,
});
}