/*! * @nuxt/webpack v2.15.8 (c) 2016-2021 * Released under the MIT License * Repository: https://github.com/nuxt/nuxt.js * Website: https://nuxtjs.org */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const path = require('path'); const pify = require('pify'); const webpack = require('webpack'); const Glob = require('glob'); const webpackDevMiddleware = require('webpack-dev-middleware'); const webpackHotMiddleware = require('webpack-hot-middleware'); const consola = require('consola'); const utils = require('@nuxt/utils'); const MFS = require('memory-fs'); const querystring = require('querystring'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const BundleAnalyzer = require('webpack-bundle-analyzer'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const FriendlyErrorsWebpackPlugin = require('@nuxt/friendly-errors-webpack-plugin'); const EventEmitter = require('events'); const hash = require('hash-sum'); const lodash = require('lodash'); const TimeFixPlugin = require('time-fix-plugin'); const VueLoader = require('vue-loader'); const ExtractCssChunksPlugin = require('extract-css-chunks-webpack-plugin'); const PnpWebpackPlugin = require('pnp-webpack-plugin'); const HardSourcePlugin = require('hard-source-webpack-plugin'); const TerserWebpackPlugin = require('terser-webpack-plugin'); const WebpackBar = require('webpackbar'); const env = require('std-env'); const semver = require('semver'); const ufo = require('ufo'); const threadLoader = require('thread-loader'); const fs = require('fs'); const createResolver = require('postcss-import-resolver'); const nodeExternals = require('webpack-node-externals'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n['default'] = e; return Object.freeze(n); } const path__default = /*#__PURE__*/_interopDefaultLegacy(path); const pify__default = /*#__PURE__*/_interopDefaultLegacy(pify); const webpack__default = /*#__PURE__*/_interopDefaultLegacy(webpack); const Glob__default = /*#__PURE__*/_interopDefaultLegacy(Glob); const webpackDevMiddleware__default = /*#__PURE__*/_interopDefaultLegacy(webpackDevMiddleware); const webpackHotMiddleware__default = /*#__PURE__*/_interopDefaultLegacy(webpackHotMiddleware); const consola__default = /*#__PURE__*/_interopDefaultLegacy(consola); const MFS__default = /*#__PURE__*/_interopDefaultLegacy(MFS); const querystring__default = /*#__PURE__*/_interopDefaultLegacy(querystring); const HtmlWebpackPlugin__default = /*#__PURE__*/_interopDefaultLegacy(HtmlWebpackPlugin); const BundleAnalyzer__default = /*#__PURE__*/_interopDefaultLegacy(BundleAnalyzer); const OptimizeCSSAssetsPlugin__default = /*#__PURE__*/_interopDefaultLegacy(OptimizeCSSAssetsPlugin); const FriendlyErrorsWebpackPlugin__default = /*#__PURE__*/_interopDefaultLegacy(FriendlyErrorsWebpackPlugin); const EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter); const hash__default = /*#__PURE__*/_interopDefaultLegacy(hash); const TimeFixPlugin__default = /*#__PURE__*/_interopDefaultLegacy(TimeFixPlugin); const VueLoader__default = /*#__PURE__*/_interopDefaultLegacy(VueLoader); const ExtractCssChunksPlugin__default = /*#__PURE__*/_interopDefaultLegacy(ExtractCssChunksPlugin); const PnpWebpackPlugin__namespace = /*#__PURE__*/_interopNamespace(PnpWebpackPlugin); const HardSourcePlugin__default = /*#__PURE__*/_interopDefaultLegacy(HardSourcePlugin); const TerserWebpackPlugin__default = /*#__PURE__*/_interopDefaultLegacy(TerserWebpackPlugin); const WebpackBar__default = /*#__PURE__*/_interopDefaultLegacy(WebpackBar); const env__default = /*#__PURE__*/_interopDefaultLegacy(env); const semver__default = /*#__PURE__*/_interopDefaultLegacy(semver); const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); const createResolver__default = /*#__PURE__*/_interopDefaultLegacy(createResolver); const nodeExternals__default = /*#__PURE__*/_interopDefaultLegacy(nodeExternals); class AsyncMFS extends MFS__default['default'] {} const syncRegex = /Sync$/; const propsToPromisify = Object.getOwnPropertyNames(MFS__default['default'].prototype).filter(n => syncRegex.test(n)); for (const prop of propsToPromisify) { const asyncProp = prop.replace(syncRegex, ''); const origAsync = AsyncMFS.prototype[asyncProp]; AsyncMFS.prototype[asyncProp] = function (...args) { // Callback support for webpack if (origAsync && args.length && typeof args[args.length - 1] === 'function') { return origAsync.call(this, ...args) } try { return Promise.resolve(MFS__default['default'].prototype[prop].call(this, ...args)) } catch (error) { return Promise.reject(error) } }; } class CorsPlugin { constructor ({ crossorigin }) { this.crossorigin = crossorigin; } apply (compiler) { const ID = 'vue-cors-plugin'; compiler.hooks.compilation.tap(ID, (compilation) => { HtmlWebpackPlugin__default['default'].getHooks(compilation).alterAssetTagGroups.tap(ID, (data) => { if (!this.crossorigin) { return } [...data.headTags, ...data.bodyTags].forEach((tag) => { if (['script', 'link'].includes(tag.tagName)) { if (tag.attributes) { tag.attributes.crossorigin = this.crossorigin; } } }); }); }); } } /* * This file is based on @vue/cli-service (MIT) ModernModePlugin * https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/webpack/ModernModePlugin.js */ const legacyTemplateTags = {}; const legacyTemplateWatcher = new EventEmitter__default['default'](); class ModernModePlugin { constructor ({ targetDir, isModernBuild, noUnsafeInline }) { this.targetDir = targetDir; this.isModernBuild = isModernBuild; this.noUnsafeInline = noUnsafeInline; } apply (compiler) { if (!this.isModernBuild) { this.applyLegacy(compiler); } else { this.applyModern(compiler); } } getLegacyTemplateTags (name) { return new Promise((resolve) => { const tags = legacyTemplateTags[name]; if (tags) { return resolve(tags) } return legacyTemplateWatcher.once(name, () => { const tags = legacyTemplateTags[name]; return tags && resolve(tags) }) }) } applyLegacy (compiler) { const ID = 'nuxt-legacy-bundle'; compiler.hooks.compilation.tap(ID, (compilation) => { HtmlWebpackPlugin__default['default'].getHooks(compilation).alterAssetTagGroups.tap(ID, (data) => { HtmlWebpackPlugin__default['default'].getHooks(compilation).afterEmit.tap(ID, ({ outputName }) => { // get stats, write to disk legacyTemplateTags[data.plugin.options.filename] = data.bodyTags; legacyTemplateWatcher.emit(outputName); }); return data }); }); } applyModern (compiler) { const ID = 'nuxt-modern-bundle'; compiler.hooks.compilation.tap(ID, (compilation) => { HtmlWebpackPlugin__default['default'].getHooks(compilation).alterAssetTagGroups.tapPromise(ID, async (data) => { // use