From b3e13c5ea565e227e4775685fd9e70ac0d84e38c Mon Sep 17 00:00:00 2001 From: JC Brand Date: Wed, 11 Sep 2019 17:18:11 +0200 Subject: [PATCH] Add webpack config for making a headless build --- Makefile | 9 +++------ package.json | 3 +-- webpack.common.js | 27 +-------------------------- webpack.headless.js | 17 +++++++++++++++++ 4 files changed, 22 insertions(+), 34 deletions(-) create mode 100644 webpack.headless.js diff --git a/Makefile b/Makefile index 23b98265f..8aaae358e 100644 --- a/Makefile +++ b/Makefile @@ -167,17 +167,14 @@ logo/conversejs-filled%.png:: logo/conversejs-filled.svg $(INKSCAPE) -e $@ -w $* $< $(OXIPNG) $@ -BUILDS = src/headless/dist/converse-headless.js \ - src/headless/dist/converse-headless.min.js +BUILDS = src/headless/dist/converse-headless.min.js + +@converse/headless: src/headless -src/headless/dist/converse-headless.js: src webpack.common.js stamp-npm @converse/headless - npm run converse-headless.js src/headless/dist/converse-headless.min.js: src webpack.common.js stamp-npm @converse/headless npm run converse-headless.min.js -@converse/headless: src/headless - .PHONY: dist dist:: build diff --git a/package.json b/package.json index 7a8a8f34a..640117920 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,7 @@ "scripts": { "serve": "webpack-dev-server --config webpack.serve.js", "clean": "rm -rf node_modules stamp-npm dist *.zip", - "converse-headless.js": "webpack --mode=development --type=headless", - "converse-headless.min.js": "npm run converse-headless.js && webpack --mode=production --type=headless", + "converse-headless.min.js": "webpack --config webpack.headless.js", "nodeps": "webpack --config webpack.nodeps.js", "build": "webpack --config webpack.prod.js", "dev": "webpack --config webpack.dev.js", diff --git a/webpack.common.js b/webpack.common.js index e52db3856..d4090de39 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -1,10 +1,8 @@ /* global __dirname, module, process */ -const HTMLWebpackPlugin = require('html-webpack-plugin'); -const minimist = require('minimist'); const path = require('path'); const webpack = require('webpack'); -const config = { +module.exports = { output: { path: path.resolve(__dirname, 'dist'), // Output path for generated bundles publicPath: '/dist/', // URL base path for all assets @@ -140,26 +138,3 @@ const config = { } } } - -function extend (o1, o2) { - for (var i in o2) { - if (Object.prototype.hasOwnProperty.call(o2, i)) { - o1[i] = o2[i]; - } - } -} - -function parameterize () { - const type = minimist(process.argv.slice(2)).type; - const mode = minimist(process.argv.slice(2)).mode; - const lang = minimist(process.argv.slice(2)).lang; - if (type === 'headless') { - console.log("Making a headless build"); - config.entry = "@converse/headless/headless.js"; - config.output.filename = 'converse-headless.js'; - } -} - -parameterize(); - -module.exports = config; diff --git a/webpack.headless.js b/webpack.headless.js new file mode 100644 index 000000000..be1c9f1cc --- /dev/null +++ b/webpack.headless.js @@ -0,0 +1,17 @@ +/* global __dirname, module */ +const common = require("./webpack.common.js"); +const merge = require("webpack-merge"); +const path = require('path'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); + +module.exports = merge(common, { + entry: "@converse/headless/headless.js", + output: { + path: path.resolve(__dirname, 'src/headless/dist'), // Output path for generated bundles + filename: 'converse-headless.min.js', + chunkFilename: '[name].js' + }, + mode: "production", + devtool: "source-map", +}); +