Skip to content

Commit

Permalink
Use id of last module in chunk as name base for auto-generated chunks (
Browse files Browse the repository at this point in the history
…#3025)

* Use new FileEmitter for basic cases around assets. TODO: Replace asset
hooks completely, create tests for assets using the new hooks.

* Migrate assets to new file emitter

* Remove assetsById from Graph

* Implement emitFile for assets

* Internally use EmittedFile in the file emitter

* Deprecate emitAsset and ROLLUP_ASSET_URL

* Deprecate getAssetFileName

* Merge chunk emission into unified API and deprecated previous API

* Allow emitting files with fixed names

* Support unnamed assets

* Improve chunk name assignment

* Initial support for chunk file names

* Allow specifying explicit file names for emitted chunks

* Fix some TODOs

* Test ids remain stable when the transform hook is cached and make test
more stable

* Refine error handling

* Test some more errors

* Refine file emission

* Refactor file emitter to have a single code path for asset finalization

* Deduplicated emitted assets without a specific file name

* Only use the alias as name for a manual chunk if the chunk is not facade
for an entry point

* Generate separate facades for duplicate named user-defined entry points

* Always create facades for explicit file names

* Test edge cases

* Test and refactor handling of dynamic relative imports

* Use async-await in generate function, remove error condition

* Improve and test pattern validation

* Test file emitter edge cases

* Improve plugin error handling

* Add documentation

* Use id of last module in chunk as name base for auto-generated chunks
  • Loading branch information
lukastaegert committed Aug 5, 2019
1 parent 871bfa0 commit 17eaa43
Show file tree
Hide file tree
Showing 737 changed files with 748 additions and 751 deletions.
5 changes: 1 addition & 4 deletions src/Chunk.ts
Expand Up @@ -999,10 +999,7 @@ export default class Chunk {
if (this.fileName) {
return getAliasName(this.fileName);
}
for (const module of this.orderedModules) {
if (module.chunkName) return module.chunkName;
}
return 'chunk';
return getAliasName(this.orderedModules[this.orderedModules.length - 1].id);
}

private getRelativePath(targetPath: string): string {
Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk'], function (dep2) { 'use strict';
define(['./generated-dep2'], function (dep2) { 'use strict';

function fn () {
console.log('dep1 fn');
Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk'], function (dep2) { 'use strict';
define(['./generated-dep2'], function (dep2) { 'use strict';

function fn () {
console.log('lib1 fn');
Expand Down
@@ -1,6 +1,6 @@
'use strict';

var dep2 = require('./generated-chunk.js');
var dep2 = require('./generated-dep2.js');

function fn () {
console.log('dep1 fn');
Expand Down
@@ -1,6 +1,6 @@
'use strict';

var dep2 = require('./generated-chunk.js');
var dep2 = require('./generated-dep2.js');

function fn () {
console.log('lib1 fn');
Expand Down
@@ -1,4 +1,4 @@
import { f as fn$1 } from './generated-chunk.js';
import { f as fn$1 } from './generated-dep2.js';

function fn () {
console.log('dep1 fn');
Expand Down
@@ -1,4 +1,4 @@
import { f as fn$2 } from './generated-chunk.js';
import { f as fn$2 } from './generated-dep2.js';

function fn () {
console.log('lib1 fn');
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js'], function (exports) {
System.register(['./generated-dep2.js'], function (exports) {
'use strict';
var fn$1;
return {
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js'], function (exports) {
System.register(['./generated-dep2.js'], function (exports) {
'use strict';
var fn$2;
return {
Expand Down

This file was deleted.

@@ -0,0 +1,10 @@
define(['exports', './generated-dep1', './generated-dep2'], function (exports, dep1, dep2) { 'use strict';

var x = dep1.x + 1;

var y = dep2.x + 1;

exports.x = x;
exports.y = y;

});
@@ -1,4 +1,4 @@
define(['./generated-chunk', './generated-chunk2', './generated-chunk3'], function (dep1, shared2, dep2) { 'use strict';
define(['./generated-dep1', './generated-shared2', './generated-dep2'], function (dep1, shared2, dep2) { 'use strict';

console.log(shared2.x + shared2.y);

Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk', './generated-chunk2', './generated-chunk3'], function (dep1, shared2, dep2) { 'use strict';
define(['./generated-dep1', './generated-shared2', './generated-dep2'], function (dep1, shared2, dep2) { 'use strict';



Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk'], function (dep1) { 'use strict';
define(['./generated-dep1'], function (dep1) { 'use strict';



Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk3'], function (dep2) { 'use strict';
define(['./generated-dep2'], function (dep2) { 'use strict';



Expand Down

This file was deleted.

@@ -0,0 +1,11 @@
'use strict';

var dep1 = require('./generated-dep1.js');
var dep2 = require('./generated-dep2.js');

var x = dep1.x + 1;

var y = dep2.x + 1;

exports.x = x;
exports.y = y;
@@ -1,7 +1,7 @@
'use strict';

require('./generated-chunk.js');
var shared2 = require('./generated-chunk2.js');
require('./generated-chunk3.js');
require('./generated-dep1.js');
var shared2 = require('./generated-shared2.js');
require('./generated-dep2.js');

console.log(shared2.x + shared2.y);
@@ -1,6 +1,6 @@
'use strict';

require('./generated-chunk.js');
require('./generated-chunk2.js');
require('./generated-chunk3.js');
require('./generated-dep1.js');
require('./generated-shared2.js');
require('./generated-dep2.js');

@@ -1,4 +1,4 @@
'use strict';

require('./generated-chunk.js');
require('./generated-dep1.js');

@@ -1,4 +1,4 @@
'use strict';

require('./generated-chunk3.js');
require('./generated-dep2.js');

This file was deleted.

@@ -0,0 +1,8 @@
import { x as x$1 } from './generated-dep1.js';
import { x as x$2 } from './generated-dep2.js';

var x = x$1 + 1;

var y = x$2 + 1;

export { x, y };
@@ -1,5 +1,5 @@
import './generated-chunk.js';
import { x, y } from './generated-chunk2.js';
import './generated-chunk3.js';
import './generated-dep1.js';
import { x, y } from './generated-shared2.js';
import './generated-dep2.js';

console.log(x + y);
@@ -1,3 +1,3 @@
import './generated-chunk.js';
import './generated-chunk2.js';
import './generated-chunk3.js';
import './generated-dep1.js';
import './generated-shared2.js';
import './generated-dep2.js';
@@ -1 +1 @@
import './generated-chunk.js';
import './generated-dep1.js';
@@ -1 +1 @@
import './generated-chunk3.js';
import './generated-dep2.js';
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js', './generated-chunk3.js'], function (exports) {
System.register(['./generated-dep1.js', './generated-dep2.js'], function (exports) {
'use strict';
var x$1, x$2;
return {
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js', './generated-chunk2.js', './generated-chunk3.js'], function () {
System.register(['./generated-dep1.js', './generated-shared2.js', './generated-dep2.js'], function () {
'use strict';
var x, y;
return {
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js', './generated-chunk2.js', './generated-chunk3.js'], function () {
System.register(['./generated-dep1.js', './generated-shared2.js', './generated-dep2.js'], function () {
'use strict';
return {
setters: [function () {}, function () {}, function () {}],
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js'], function () {
System.register(['./generated-dep1.js'], function () {
'use strict';
return {
setters: [function () {}],
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk3.js'], function () {
System.register(['./generated-dep2.js'], function () {
'use strict';
return {
setters: [function () {}],
Expand Down

This file was deleted.

@@ -0,0 +1,5 @@
define(['./generated-dep111', './generated-dep112'], function (dep111, dep112) { 'use strict';

console.log('11');

});
@@ -1,4 +1,4 @@
define(['./generated-chunk', './generated-chunk2', './generated-chunk3'], function (dep111, dep112, dep11) { 'use strict';
define(['./generated-dep111', './generated-dep112', './generated-dep11'], function (dep111, dep112, dep11) { 'use strict';

console.log('1');

Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk', './generated-chunk2', './generated-chunk3'], function (dep111, dep112, dep11) { 'use strict';
define(['./generated-dep111', './generated-dep112', './generated-dep11'], function (dep111, dep112, dep11) { 'use strict';



Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk'], function (dep111) { 'use strict';
define(['./generated-dep111'], function (dep111) { 'use strict';



Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk2'], function (dep112) { 'use strict';
define(['./generated-dep112'], function (dep112) { 'use strict';



Expand Down

This file was deleted.

@@ -0,0 +1,6 @@
'use strict';

require('./generated-dep111.js');
require('./generated-dep112.js');

console.log('11');
@@ -1,8 +1,8 @@
'use strict';

require('./generated-chunk.js');
var dep112 = require('./generated-chunk2.js');
require('./generated-chunk3.js');
require('./generated-dep111.js');
var dep112 = require('./generated-dep112.js');
require('./generated-dep11.js');

console.log('1');

Expand Down
@@ -1,6 +1,6 @@
'use strict';

require('./generated-chunk.js');
require('./generated-chunk2.js');
require('./generated-chunk3.js');
require('./generated-dep111.js');
require('./generated-dep112.js');
require('./generated-dep11.js');

@@ -1,4 +1,4 @@
'use strict';

require('./generated-chunk.js');
require('./generated-dep111.js');

@@ -1,4 +1,4 @@
'use strict';

require('./generated-chunk2.js');
require('./generated-dep112.js');

This file was deleted.

@@ -0,0 +1,4 @@
import './generated-dep111.js';
import './generated-dep112.js';

console.log('11');
@@ -1,6 +1,6 @@
import './generated-chunk.js';
import { x } from './generated-chunk2.js';
import './generated-chunk3.js';
import './generated-dep111.js';
import { x } from './generated-dep112.js';
import './generated-dep11.js';

console.log('1');

Expand Down
@@ -1,3 +1,3 @@
import './generated-chunk.js';
import './generated-chunk2.js';
import './generated-chunk3.js';
import './generated-dep111.js';
import './generated-dep112.js';
import './generated-dep11.js';
@@ -1 +1 @@
import './generated-chunk.js';
import './generated-dep111.js';
@@ -1 +1 @@
import './generated-chunk2.js';
import './generated-dep112.js';
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js', './generated-chunk2.js'], function () {
System.register(['./generated-dep111.js', './generated-dep112.js'], function () {
'use strict';
return {
setters: [function () {}, function () {}],
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js', './generated-chunk2.js', './generated-chunk3.js'], function () {
System.register(['./generated-dep111.js', './generated-dep112.js', './generated-dep11.js'], function () {
'use strict';
var x;
return {
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js', './generated-chunk2.js', './generated-chunk3.js'], function () {
System.register(['./generated-dep111.js', './generated-dep112.js', './generated-dep11.js'], function () {
'use strict';
return {
setters: [function () {}, function () {}, function () {}],
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk.js'], function () {
System.register(['./generated-dep111.js'], function () {
'use strict';
return {
setters: [function () {}],
Expand Down
@@ -1,4 +1,4 @@
System.register(['./generated-chunk2.js'], function () {
System.register(['./generated-dep112.js'], function () {
'use strict';
return {
setters: [function () {}],
Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk'], function (dep1) { 'use strict';
define(['./generated-dep1'], function (dep1) { 'use strict';

class Main1 {
constructor () {
Expand Down
@@ -1,4 +1,4 @@
define(['./generated-chunk'], function (dep1) { 'use strict';
define(['./generated-dep1'], function (dep1) { 'use strict';

class Main2 {
constructor () {
Expand Down

0 comments on commit 17eaa43

Please sign in to comment.