"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const html_webpack_plugin_1 = __importDefault(require("html-webpack-plugin"));
const utils_1 = require("../utils");
const config_1 = require("../utils/config");
const DEFAULT_MINIFY = {
removeComments: true,
collapseWhitespace: true,
removeRedundantAttributes: true,
useShortDoctype: true,
removeEmptyAttributes: true,
removeStyleLinkTypeAttributes: true,
keepClosingSlash: true,
minifyJS: true,
minifyCSS: true,
minifyURLs: true,
};
class ExpoHtmlWebpackPlugin extends html_webpack_plugin_1.default {
constructor(env) {
const locations = env.locations || utils_1.getPaths(env.projectRoot);
const config = utils_1.getConfig(env);
const isProduction = utils_1.getMode(env) === 'production';
const { name, build = {} } = config.web;
/**
* The user can disable minify with
* `web.minifyHTML = false || {}`
*/
const minify = config_1.overrideWithPropertyOrConfig(isProduction ? build.minifyHTML : false, DEFAULT_MINIFY);
// Generates an `index.html` file with the <script> injected.
super({
// The file to write the HTML to.
filename: locations.production.indexHtml,
// The title to use for the generated HTML document.
title: name,
// Pass a html-minifier options object to minify the output.
// https://github.com/kangax/html-minifier#options-quick-reference
minify,
// The `webpack` require path to the template.
template: locations.template.indexHtml,
});
}
}
exports.default = ExpoHtmlWebpackPlugin;
//# sourceMappingURL=ExpoHtmlWebpackPlugin.js.map