Skip to content

Commit

Permalink
test(split_chunks): Migrate test/configCases/split-chunks-common of W…
Browse files Browse the repository at this point in the history
…ebpack
  • Loading branch information
hyf0 committed May 5, 2023
1 parent 2d9e5c2 commit 15a3528
Show file tree
Hide file tree
Showing 42 changed files with 401 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = "common";
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require("./common");

it("should have the correct main flag for multi first module", function () {
expect(module.hot._main).toBe(true);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require("./common");

it("should have the correct main flag for multi second module", function () {
expect(module.hot._main).toBe(true);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = "shared";
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function (i, options) {
return ["./vendor.js", "./first.js", "./second.js"];
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
var HotModuleReplacementPlugin =
require("../../../../").HotModuleReplacementPlugin;
/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
first: ["./shared", "./first"],
second: ["./shared", "./second"]
},
target: "web",
output: {
filename: "[name].js"
},
optimization: {
splitChunks: {
cacheGroups: {
vendor: {
chunks: "all",
name: "vendor",
minChunks: 2,
enforce: true
}
}
}
},
plugins: [new HotModuleReplacementPlugin()]
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
it("should have the correct main flag", function () {
var a = require("./vendor");
expect(a._main).toBe(false);
expect(module.hot._main).toBe(true);
});

it("should be main", function () {
expect(require.main).toBe(module);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function (i, options) {
return ["./vendor.js", "./main.js"];
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = module.hot;
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
var HotModuleReplacementPlugin =
require("../../../../").HotModuleReplacementPlugin;
/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
main: "./index"
},
target: "web",
output: {
filename: "[name].js"
},
optimization: {
splitChunks: {
cacheGroups: {
vendor: {
chunks: "all",
name: "vendor",
test: /vendor/,
enforce: true
}
}
}
},
plugins: [new HotModuleReplacementPlugin()]
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
var path = require("path");
module.exports = {
vendor: require("fs").readFileSync(
path.join(__dirname, "vendor.js"),
"utf-8"
),
main: require("fs").readFileSync(path.join(__dirname, "main.js"), "utf-8")
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
if (Math.random() < 0) require("external1");
require.ensure([], function () {
if (Math.random() < 0) require("external2");
});

it("should have externals in main file", function () {
var a = require("./a");
expect(a.vendor).toMatch('require("external0")');
expect(a.main).toMatch('require("external1")');
expect(a.main).toMatch('require("external2")');
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module.exports = {
findBundle: function (i, options) {
return ["./vendor.js", "./main.js"];
},
modules: {
external0: "module 0",
external1: "module 1",
external2: "module 2"
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
vendor: ["external0", "./a"],
main: "./index"
},
target: "web",
output: {
filename: "[name].js",
libraryTarget: "umd"
},
externals: ["external0", "external1", "external2", "fs", "path"],
optimization: {
splitChunks: {
cacheGroups: {
vendor: {
test: "vendor",
name: "vendor",
enforce: true
}
}
}
},
node: {
__filename: false,
__dirname: false
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
it("should run", function () {
var a = require("a");
expect(a).toBe("a");
var b = require("b");
expect(b).toBe("b");
var c = require("c");
expect(c).toBe("c");
var d = require("d");
expect(d).toBe("d");
});

it("should be main", function () {
expect(require.main).toBe(module);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function (i, options) {
return [`./${options.name}-main.js`];
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/** @type {import("../../../../").Configuration[]} */
module.exports = [
{
name: "default",
entry: "./index",
target: "node",
output: {
filename: "default-[name].js",
libraryTarget: "commonjs2"
},
optimization: {
splitChunks: {
minSize: 1,
chunks: "all"
}
}
},
{
name: "many-vendors",
entry: "./index",
target: "node",
output: {
filename: "many-vendors-[name].js",
libraryTarget: "commonjs2"
},
optimization: {
splitChunks: {
minSize: 1,
chunks: "all",
maxInitialRequests: Infinity,
cacheGroups: {
default: false,
defaultVendors: false,
vendors: {
test: /node_modules/,
name: m => {
const match = m.nameForCondition().match(/([b-d]+)\.js$/);
if (match) return "vendors-" + match[1];
}
}
}
}
}
}
];
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = "a";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
var a = require("./a");

it("should run", function () {
expect(a).toBe("a");
});

var mainModule = require.main;

it("should be main", function () {
expect(mainModule).toBe(module);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function (i, options) {
return ["./vendor.js", "./main.js"];
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
vendor: ["./a"],
main: "./index"
},
target: "web",
output: {
filename: "[name].js"
},
experiments: {
newSplitChunks: true
},
optimization: {
splitChunks: {
minSize: 1,
name: "vendor"
}
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
it("should run successful", function () {});
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function (i, options) {
return ["./main.js"];
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
main: "./index",
second: "./index"
},
target: "web",
output: {
filename: "[name].js"
},
experiments: {
newSplitChunks: true
},
optimization: {
splitChunks: {
minSize: 1
}
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = "a";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
var a = require("./a");

it("should run", function () {
expect(a).toBe("a");
});

var mainModule = require.main;

it("should be main", function () {
expect(mainModule).toBe(module);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function (i, options) {
return ["./main.js", "./vendor.js"];
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
vendor: ["./a"],
main: "./index"
},
target: "web",
output: {
filename: "[name].js"
},
experiments: {
newSplitChunks: true
},
optimization: {
splitChunks: {
minSize: 1,
name: "vendor"
}
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = "a";
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = "b";
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
it("should be main", function () {
require("./a");
require("./b");

expect(window["webpackChunk"].length).toBe(1);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
it("should run", function () {
var a = require("./a");
var b = require("./b");
expect(a).toBe("a");
expect(b).toBe("b");
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
findBundle: function (i, options) {
return ["./common.js", "./main.js", "./main2.js"];
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
entry: {
main: "./index",
main2: "./index2"
},
target: "web",
output: {
filename: "[name].js"
},
experiments: {
newSplitChunks: true
},
optimization: {
splitChunks: {
cacheGroups: {
common: {
chunks: "initial",
minSize: 0,
name: "common"
}
}
}
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
it("should correctly include indirect children in common chunk", function (done) {
Promise.all([import("./pageA"), import("./pageB")])
.then(imports => {
expect(imports[0].default).toBe("reuse");
expect(imports[1].default).toBe("reuse");
done();
})
.catch(e => {
done(e);
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var reusableComponent = require("./reusableComponent");

export default reusableComponent.default;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = import("./pageC");
Loading

0 comments on commit 15a3528

Please sign in to comment.