mirror of
https://github.com/qlik-oss/nebula.js.git
synced 2025-12-19 17:58:43 -05:00
refactor: internal packages structure (#94)
* refactor: internal packages structure * refactor: internal packages structure
This commit is contained in:
committed by
GitHub
parent
45eae91837
commit
a57abf1ead
85
commands/serve/lib/webpack.build.js
Normal file
85
commands/serve/lib/webpack.build.js
Normal 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,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user