Skip to content

Commit 2b626fb

Browse files
committed
Allow empty chunk name when webpackMode: 'eager' is set
1 parent f77ceb6 commit 2b626fb

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

docs/rules/dynamic-import-chunkname.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,12 @@ The following patterns are valid:
8686
/* webpackChunkName: 'someModule' */
8787
'someModule',
8888
);
89+
90+
// chunk name is ignored when using eager mode
91+
import(
92+
/* webpackMode: "eager" */,
93+
'someModule',
94+
);
8995
```
9096

9197
### `allowEmpty: true`

src/rules/dynamic-import-chunkname.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ module.exports = {
3838
const commentStyleRegex = /^( ((webpackChunkName: .+)|((webpackPrefetch|webpackPreload): (true|false|-?[0-9]+))|(webpackIgnore: (true|false))|((webpackInclude|webpackExclude): \/.*\/)|(webpackMode: ["'](lazy|lazy-once|eager|weak)["'])|(webpackExports: (['"]\w+['"]|\[(['"]\w+['"], *)+(['"]\w+['"]*)\]))),?)+ $/;
3939
const chunkSubstrFormat = ` webpackChunkName: ["']${webpackChunknameFormat}["'],? `;
4040
const chunkSubstrRegex = new RegExp(chunkSubstrFormat);
41+
const eagerModeRegex = /webpackMode: ["']eager["']/;
4142

4243
function run(node, arg) {
4344
const sourceCode = context.getSourceCode();
@@ -54,6 +55,7 @@ module.exports = {
5455
}
5556

5657
let isChunknamePresent = false;
58+
let isEagerModePresent = false;
5759

5860
for (const comment of leadingComments) {
5961
if (comment.type !== 'Block') {
@@ -92,12 +94,16 @@ module.exports = {
9294
return;
9395
}
9496

97+
if (eagerModeRegex.test(comment.value)) {
98+
isEagerModePresent = true;
99+
}
100+
95101
if (chunkSubstrRegex.test(comment.value)) {
96102
isChunknamePresent = true;
97103
}
98104
}
99105

100-
if (!isChunknamePresent && !allowEmpty) {
106+
if (!isChunknamePresent && !allowEmpty && !isEagerModePresent) {
101107
context.report({
102108
node,
103109
message:

tests/src/rules/dynamic-import-chunkname.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,14 @@ ruleTester.run('dynamic-import-chunkname', rule, {
419419
options,
420420
parser,
421421
},
422+
{
423+
code: `import(
424+
/* webpackMode: 'eager' */
425+
'someModule'
426+
)`,
427+
options,
428+
parser,
429+
},
422430
...SYNTAX_CASES,
423431
],
424432

0 commit comments

Comments
 (0)