chore: update dev config

This commit is contained in:
Wroud
2020-07-17 12:19:14 +03:00
parent 2672e1a8c6
commit 3d8e920603
3 changed files with 46 additions and 47 deletions
+4 -42
View File
@@ -1,53 +1,15 @@
const merge = require('webpack-merge');
const webpack = require('webpack');
const fs = require('fs');
const { resolve, join } = require('path');
const commonConfig = require('./webpack.config.js');
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const commonConfig = require('./webpack.config.js');
const getAssets = require('./webpack.product.utils');
var main = resolve('src/index.ts');
var outputDir = resolve('lib');
var package = require(resolve("package.json"))
function getCloudbeaverDeps(package) {
if (!package.dependencies) {
return [];
}
return Object.keys(package.dependencies)
.filter(dependency => /@cloudbeaver\/(.*?)/.test(dependency))
}
function scanCloudbeaverDeps() {
const deps = new Set();
const list = getCloudbeaverDeps(package);
while (list.length) {
const dependency = list.shift();
if (!deps.has(dependency)) {
list.push(...getCloudbeaverDeps(require(join(__dirname, '../node_modules', dependency, 'package.json'))))
}
deps.add(dependency);
}
return Array.from(deps.keys())
}
function getAssets(to) {
const patterns = scanCloudbeaverDeps()
.map(dependency => ({ from: join(__dirname, '../node_modules', dependency, 'public'), to, force: true }))
.reverse();
patterns.push({ from: './public', to, force: true });
return patterns.filter(pattern => fs.existsSync(pattern.from))
}
scanCloudbeaverDeps()
module.exports = (env, argv) => merge(commonConfig(env, argv), {
entry: main,
output: {
@@ -69,7 +31,7 @@ module.exports = (env, argv) => merge(commonConfig(env, argv), {
},
plugins: [
new CopyWebpackPlugin({
patterns: getAssets('')
patterns: getAssets(package, '')
}),
new webpack.DefinePlugin({
version: JSON.stringify(package.buildVersion),
+4 -5
View File
@@ -4,9 +4,10 @@ const { resolve } = require('path');
const commonConfig = require('./webpack.config.js');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const getAssets = require('./webpack.product.utils');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
var packageJson = require(resolve("package.json"))
var package = require(resolve("package.json"))
module.exports = (env, argv) => merge(commonConfig(env, argv), {
entry: [
@@ -24,12 +25,10 @@ module.exports = (env, argv) => merge(commonConfig(env, argv), {
devtool: 'cheap-module-eval-source-map',
plugins: [
new CopyWebpackPlugin({
patterns: [
{ from: './public', to: '', force: true },
]
patterns: getAssets(package, '')
}),
new webpack.DefinePlugin({
version: JSON.stringify(packageJson.buildVersion),
version: JSON.stringify(package.buildVersion),
}),
new HtmlWebpackPlugin({ template: resolve('src/index.html.ejs'), }),
new webpack.HotModuleReplacementPlugin(), // enable HMR globally
+38
View File
@@ -0,0 +1,38 @@
const fs = require('fs');
const { join } = require('path');
function getCloudbeaverDeps(package) {
if (!package.dependencies) {
return [];
}
return Object.keys(package.dependencies)
.filter(dependency => /@cloudbeaver\/(.*?)/.test(dependency))
}
function scanCloudbeaverDeps(package) {
const deps = new Set();
const list = getCloudbeaverDeps(package);
while (list.length) {
const dependency = list.shift();
if (!deps.has(dependency)) {
list.push(...getCloudbeaverDeps(require(join(__dirname, '../node_modules', dependency, 'package.json'))))
}
deps.add(dependency);
}
return Array.from(deps.keys())
}
module.exports = function getAssets(package, to) {
const patterns = scanCloudbeaverDeps(package)
.map(dependency => ({ from: join(__dirname, '../node_modules', dependency, 'public'), to, force: true }))
.reverse();
patterns.push({ from: './public', to, force: true });
return patterns.filter(pattern => fs.existsSync(pattern.from))
}