|
@@ -0,0 +1,182 @@
|
|
|
|
|
+"use strict";
|
|
|
|
|
+var __awaiter = (this && this.__awaiter) || function(thisArg, _arguments, P, generator) {
|
|
|
|
|
+ function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); }
|
|
|
|
|
+ return new(P || (P = Promise))(function(resolve, reject) {
|
|
|
|
|
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
|
|
|
+
|
|
|
|
|
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
|
|
|
+
|
|
|
|
|
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
|
|
|
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
+var __generator = (this && this.__generator) || function(thisArg, body) {
|
|
|
|
|
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] },
|
|
|
|
|
+ f, y, t, g;
|
|
|
|
|
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] =
|
|
|
|
|
+function() { return this; }), g;
|
|
|
|
|
+
|
|
|
|
|
+ function verb(n) { return function(v) { return step([n, v]); }; }
|
|
|
|
|
+
|
|
|
|
|
+ function step(op) {
|
|
|
|
|
+ if (f) throw new TypeError("Generator is already executing.");
|
|
|
|
|
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
|
|
|
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t
|
|
|
|
|
+ .call(y, op[1])).done) return t;
|
|
|
|
|
+ if (y = 0, t) op = [op[0] & 2, t.value];
|
|
|
|
|
+ switch (op[0]) {
|
|
|
|
|
+ case 0:
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ t = op;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 4:
|
|
|
|
|
+ _.label++;
|
|
|
|
|
+ return { value: op[1], done: false };
|
|
|
|
|
+ case 5:
|
|
|
|
|
+ _.label++;
|
|
|
|
|
+ y = op[1];
|
|
|
|
|
+ op = [0];
|
|
|
|
|
+ continue;
|
|
|
|
|
+ case 7:
|
|
|
|
|
+ op = _.ops.pop();
|
|
|
|
|
+ _.trys.pop();
|
|
|
|
|
+ continue;
|
|
|
|
|
+ default:
|
|
|
|
|
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
|
|
|
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
|
|
|
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1];
|
|
|
|
|
+ t = op; break; }
|
|
|
|
|
+ if (t && _.label < t[2]) { _.label = t[2];
|
|
|
|
|
+ _.ops.push(op); break; }
|
|
|
|
|
+ if (t[2]) _.ops.pop();
|
|
|
|
|
+ _.trys.pop();
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ op = body.call(thisArg, _);
|
|
|
|
|
+ } catch (e) { op = [6, e];
|
|
|
|
|
+ y = 0; } finally { f = t = 0; }
|
|
|
|
|
+ if (op[0] & 5) throw op[1];
|
|
|
|
|
+ return { value: op[0] ? op[1] : void 0, done: true };
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
|
|
+exports.multipleEntryFilePlugin = void 0;
|
|
|
|
|
+
|
|
|
|
|
+function multipleEntryFilePlugin(pluginOptions) {
|
|
|
|
|
+ var chunkName = pluginOptions.chunkName,
|
|
|
|
|
+ entryPath = pluginOptions.entryPath,
|
|
|
|
|
+ insertPlaceholder = pluginOptions.insertPlaceholder,
|
|
|
|
|
+ crossorigin = pluginOptions.crossorigin,
|
|
|
|
|
+ entryFileName = pluginOptions.entryFileName,
|
|
|
|
|
+ _a = pluginOptions.injectTo,
|
|
|
|
|
+ injectTo = _a === void 0 ? 'head-prepend' : _a;
|
|
|
|
|
+ var filename = '';
|
|
|
|
|
+ var base = '';
|
|
|
|
|
+ var isDevServer = true;
|
|
|
|
|
+ return {
|
|
|
|
|
+ name: 'multiple-entries-plugin',
|
|
|
|
|
+ // Only be executed in dev mode
|
|
|
|
|
+ configureServer: function() {
|
|
|
|
|
+ // isDevServer = true;
|
|
|
|
|
+ // filename = entryPath;
|
|
|
|
|
+ },
|
|
|
|
|
+ // Record base path for build output file path
|
|
|
|
|
+ configResolved: function(resolvedConfig) {
|
|
|
|
|
+ base = resolvedConfig.base || '';
|
|
|
|
|
+ },
|
|
|
|
|
+ // Inject new entry
|
|
|
|
|
+ options: function(options) {
|
|
|
|
|
+ // is string
|
|
|
|
|
+ if (typeof options.input === 'string') {
|
|
|
|
|
+ options.input = [options.input, entryPath];
|
|
|
|
|
+ }
|
|
|
|
|
+ // is array
|
|
|
|
|
+ else if (Array.isArray(options.input)) {
|
|
|
|
|
+ options.input.push(entryPath);
|
|
|
|
|
+ }
|
|
|
|
|
+ // is object
|
|
|
|
|
+ else if (typeof options.input === 'object') {
|
|
|
|
|
+ options.input[chunkName] = entryPath;
|
|
|
|
|
+ }
|
|
|
|
|
+ // No entry specified, treat current entry as the only one.
|
|
|
|
|
+ else {
|
|
|
|
|
+ options.input = [entryPath];
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * override entryFileNames, append the new entry file name into origin.
|
|
|
|
|
+ * By default, it will hit options.output.entryFileNames naming logic. output file name will be set to the same file name as the main entry.
|
|
|
|
|
+ * If you need to specify the output file name, set pluginOptions.entryFileName in the same way as rollup.output.entryFileNames
|
|
|
|
|
+ */
|
|
|
|
|
+ outputOptions: function(options) {
|
|
|
|
|
+ if (!entryFileName) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Array.isArray(options)) {
|
|
|
|
|
+ throw new TypeError('Array type output not supported');
|
|
|
|
|
+ }
|
|
|
|
|
+ var oldEntryFileNames = options.entryFileNames;
|
|
|
|
|
+ options.entryFileNames = function(chunkInfo) {
|
|
|
|
|
+ // Hit the entry we added
|
|
|
|
|
+ if ('isEntry' in chunkInfo &&
|
|
|
|
|
+ chunkInfo.isEntry === true &&
|
|
|
|
|
+ chunkInfo.name === chunkName) {
|
|
|
|
|
+ return entryFileName;
|
|
|
|
|
+ }
|
|
|
|
|
+ // No entry file name specified, use roll up default value
|
|
|
|
|
+ else if (oldEntryFileNames === undefined) {
|
|
|
|
|
+ return '[name].js';
|
|
|
|
|
+ }
|
|
|
|
|
+ // Entry is a function
|
|
|
|
|
+ else if (typeof oldEntryFileNames === 'function') {
|
|
|
|
|
+ return oldEntryFileNames(chunkInfo);
|
|
|
|
|
+ }
|
|
|
|
|
+ // Entry is a string
|
|
|
|
|
+ else {
|
|
|
|
|
+ return oldEntryFileNames;
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ // Record the file name of the injected module while generateBundle
|
|
|
|
|
+ generateBundle: function(_, bundle) {
|
|
|
|
|
+ Object.values(bundle).forEach(function(bun) {
|
|
|
|
|
+ if ('isEntry' in bun && bun.isEntry === true && bun.name === chunkName) {
|
|
|
|
|
+ filename = base + bun.fileName;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ // Inject <script> tag for added entry file
|
|
|
|
|
+ transformIndexHtml: function(html) {
|
|
|
|
|
+ return __awaiter(this, void 0, void 0, function() {
|
|
|
|
|
+ var injectScriptType, crossoriginAttr, tag, attrs;
|
|
|
|
|
+ return __generator(this, function(_a) {
|
|
|
|
|
+ // If there is a specified placeholder, use the placeholder first
|
|
|
|
|
+ if (insertPlaceholder) {
|
|
|
|
|
+ injectScriptType = isDevServer ? 'type="module" ' : '';
|
|
|
|
|
+ crossoriginAttr = crossorigin ? "crossorigin=\"".concat(crossorigin, "\" ") : '';
|
|
|
|
|
+ tag = "<script ".concat(injectScriptType).concat(crossoriginAttr, "src=\"").concat(filename, "\"></script>");
|
|
|
|
|
+ return [2 /*return*/ , html.replace(insertPlaceholder, tag)];
|
|
|
|
|
+ }
|
|
|
|
|
+ // Inject <script> tag with vite HtmlTagDescriptor
|
|
|
|
|
+ else {
|
|
|
|
|
+ attrs = {
|
|
|
|
|
+ src: filename,
|
|
|
|
|
+ };
|
|
|
|
|
+ if (crossorigin !== undefined) {
|
|
|
|
|
+ attrs.crossorigin = crossorigin;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (isDevServer) {
|
|
|
|
|
+ attrs.type = 'module';
|
|
|
|
|
+ }
|
|
|
|
|
+ return [2 /*return*/ , {
|
|
|
|
|
+ html: html,
|
|
|
|
|
+ tags: [{ tag: 'script', attrs: attrs, injectTo: injectTo }],
|
|
|
|
|
+ }];
|
|
|
|
|
+ }
|
|
|
|
|
+ return [2 /*return*/ ];
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
|
|
+}
|
|
|
|
|
+exports.multipleEntryFilePlugin = multipleEntryFilePlugin;
|