Skip to content

Commit f4578c8

Browse files
committed
feat(ext plguin): 支持js后缀转换
1 parent b83d75e commit f4578c8

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/models/Config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ class Config {
4444
alias: {}
4545
},
4646
entryExtNames: {
47-
css: ['.css']
47+
css: ['.css'],
48+
js: []
4849
},
4950
requireRules: [
5051
'node_modules|package.json:main|index.js'

src/plugins/extTemplatedPathPlugin.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,25 @@
22

33
module.exports = {
44
apply: (compiler) => {
5-
var cssExtNames = compiler.options.entryExtNames.css;
5+
const entryExtNames = compiler.options.entryExtNames
6+
67
compiler.plugin("compilation", function(compilation) {
78
compilation.mainTemplate.plugin("asset-path", function(path, data) {
89
let extName = '[ext]';
910
if (data.chunk) {
1011
let rawRequest = data.chunk.origins[0].module.rawRequest;
1112
extName = sysPath.extname(rawRequest);
12-
if (cssExtNames.indexOf(sysPath.extname(sysPath.basename(rawRequest, '.js'))) > -1) {
13+
14+
if (entryExtNames.css.indexOf(sysPath.extname(sysPath.basename(rawRequest, '.js'))) > -1) {
1315
extName = '.cache';
1416
}
17+
18+
// 应用后缀转换规则
19+
Object.keys(entryExtNames).map((targetExtName) => {
20+
if(entryExtNames[targetExtName].indexOf(extName) > -1){
21+
extName = '.' + targetExtName
22+
}
23+
})
1524
}
1625
return path.replace(/\[ext\]/g, extName);
1726
});

0 commit comments

Comments
 (0)