UNPKG

@farris/build-angular

Version:

Angular Webpack Build Facade

55 lines 6.61 kB
"use strict"; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ // tslint:disable // TODO: cleanup this file, it's copied as is from Angular CLI. Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../models/webpack-configs/utils"); function generateEntryPoints(appConfig) { let entryPoints = ['polyfills', 'sw-register']; // Add all styles/scripts, except lazy-loaded ones. [ ...utils_1.normalizeExtraEntryPoints(appConfig.styles, 'styles') .filter(entry => !entry.lazy) .map(entry => entry.bundleName), ...utils_1.normalizeExtraEntryPoints(appConfig.scripts, 'scripts') .filter(entry => !entry.lazy) .map(entry => entry.bundleName), ].forEach(bundleName => { if (entryPoints.indexOf(bundleName) === -1) { entryPoints.push(bundleName); } }); entryPoints.push('main'); return entryPoints; } exports.generateEntryPoints = generateEntryPoints; // Sort chunks according to a predefined order: // inline, polyfills, all styles, vendor, main function packageChunkSort(appConfig) { const entryPoints = generateEntryPoints(appConfig); function sort(left, right) { let leftIndex = entryPoints.indexOf(left.names[0]); let rightindex = entryPoints.indexOf(right.names[0]); if (leftIndex > rightindex) { return 1; } else if (leftIndex < rightindex) { return -1; } else { return 0; } } // We need to list of entry points for the Ejected webpack config to work (we reuse the function // defined above). sort.entryPoints = entryPoints; return sort; } exports.packageChunkSort = packageChunkSort; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1jaHVuay1zb3J0LmpzIiwic291cmNlUm9vdCI6Ii4vIiwic291cmNlcyI6WyJwYWNrYWdlcy9mYXJyaXNfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2FuZ3VsYXItY2xpLWZpbGVzL3V0aWxpdGllcy9wYWNrYWdlLWNodW5rLXNvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRztBQUNILGlCQUFpQjtBQUNqQiwrREFBK0Q7O0FBRy9ELDJEQUE0RTtBQUU1RSw2QkFBb0MsU0FBYztJQUNoRCxJQUFJLFdBQVcsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUUvQyxtREFBbUQ7SUFDbkQ7UUFDRSxHQUFHLGlDQUF5QixDQUFDLFNBQVMsQ0FBQyxNQUEyQixFQUFFLFFBQVEsQ0FBQzthQUMxRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDNUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNqQyxHQUFHLGlDQUF5QixDQUFDLFNBQVMsQ0FBQyxPQUE0QixFQUFFLFNBQVMsQ0FBQzthQUM1RSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDNUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztLQUNsQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUNyQixFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFekIsTUFBTSxDQUFDLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBcEJELGtEQW9CQztBQUVELCtDQUErQztBQUMvQyw4Q0FBOEM7QUFDOUMsMEJBQWlDLFNBQWM7SUFDN0MsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFbkQsY0FBYyxJQUFTLEVBQUUsS0FBVTtRQUNqQyxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyRCxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDWixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFFRCxnR0FBZ0c7SUFDaEcsa0JBQWtCO0lBQ2pCLElBQVksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBcEJELDRDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbi8vIHRzbGludDpkaXNhYmxlXG4vLyBUT0RPOiBjbGVhbnVwIHRoaXMgZmlsZSwgaXQncyBjb3BpZWQgYXMgaXMgZnJvbSBBbmd1bGFyIENMSS5cblxuaW1wb3J0IHsgRXh0cmFFbnRyeVBvaW50IH0gZnJvbSAnLi4vLi4vYnJvd3Nlci9zY2hlbWEnO1xuaW1wb3J0IHsgbm9ybWFsaXplRXh0cmFFbnRyeVBvaW50cyB9IGZyb20gJy4uL21vZGVscy93ZWJwYWNrLWNvbmZpZ3MvdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVFbnRyeVBvaW50cyhhcHBDb25maWc6IGFueSkge1xuICBsZXQgZW50cnlQb2ludHMgPSBbJ3BvbHlmaWxscycsICdzdy1yZWdpc3RlciddO1xuXG4gIC8vIEFkZCBhbGwgc3R5bGVzL3NjcmlwdHMsIGV4Y2VwdCBsYXp5LWxvYWRlZCBvbmVzLlxuICBbXG4gICAgLi4ubm9ybWFsaXplRXh0cmFFbnRyeVBvaW50cyhhcHBDb25maWcuc3R5bGVzIGFzIEV4dHJhRW50cnlQb2ludFtdLCAnc3R5bGVzJylcbiAgICAgIC5maWx0ZXIoZW50cnkgPT4gIWVudHJ5LmxhenkpXG4gICAgICAubWFwKGVudHJ5ID0+IGVudHJ5LmJ1bmRsZU5hbWUpLFxuICAgIC4uLm5vcm1hbGl6ZUV4dHJhRW50cnlQb2ludHMoYXBwQ29uZmlnLnNjcmlwdHMgYXMgRXh0cmFFbnRyeVBvaW50W10sICdzY3JpcHRzJylcbiAgICAgIC5maWx0ZXIoZW50cnkgPT4gIWVudHJ5LmxhenkpXG4gICAgICAubWFwKGVudHJ5ID0+IGVudHJ5LmJ1bmRsZU5hbWUpLFxuICBdLmZvckVhY2goYnVuZGxlTmFtZSA9PiB7XG4gICAgaWYgKGVudHJ5UG9pbnRzLmluZGV4T2YoYnVuZGxlTmFtZSkgPT09IC0xKSB7XG4gICAgICBlbnRyeVBvaW50cy5wdXNoKGJ1bmRsZU5hbWUpO1xuICAgIH1cbiAgfSk7XG5cbiAgZW50cnlQb2ludHMucHVzaCgnbWFpbicpO1xuXG4gIHJldHVybiBlbnRyeVBvaW50cztcbn1cblxuLy8gU29ydCBjaHVua3MgYWNjb3JkaW5nIHRvIGEgcHJlZGVmaW5lZCBvcmRlcjpcbi8vIGlubGluZSwgcG9seWZpbGxzLCBhbGwgc3R5bGVzLCB2ZW5kb3IsIG1haW5cbmV4cG9ydCBmdW5jdGlvbiBwYWNrYWdlQ2h1bmtTb3J0KGFwcENvbmZpZzogYW55KSB7XG4gIGNvbnN0IGVudHJ5UG9pbnRzID0gZ2VuZXJhdGVFbnRyeVBvaW50cyhhcHBDb25maWcpO1xuXG4gIGZ1bmN0aW9uIHNvcnQobGVmdDogYW55LCByaWdodDogYW55KSB7XG4gICAgbGV0IGxlZnRJbmRleCA9IGVudHJ5UG9pbnRzLmluZGV4T2YobGVmdC5uYW1lc1swXSk7XG4gICAgbGV0IHJpZ2h0aW5kZXggPSBlbnRyeVBvaW50cy5pbmRleE9mKHJpZ2h0Lm5hbWVzWzBdKTtcblxuICAgIGlmIChsZWZ0SW5kZXggPiByaWdodGluZGV4KSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGxlZnRJbmRleCA8IHJpZ2h0aW5kZXgpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgbmVlZCB0byBsaXN0IG9mIGVudHJ5IHBvaW50cyBmb3IgdGhlIEVqZWN0ZWQgd2VicGFjayBjb25maWcgdG8gd29yayAod2UgcmV1c2UgdGhlIGZ1bmN0aW9uXG4gIC8vIGRlZmluZWQgYWJvdmUpLlxuICAoc29ydCBhcyBhbnkpLmVudHJ5UG9pbnRzID0gZW50cnlQb2ludHM7XG4gIHJldHVybiBzb3J0O1xufVxuIl19