Skip to content

Commit b8fb717

Browse files
committed
feat(config): 支持返回对象设置config
1 parent ab1a302 commit b8fb717

File tree

4 files changed

+39
-26
lines changed

4 files changed

+39
-26
lines changed

lib/models/Config.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,20 @@ var Config = function () {
6262
value: function setExports(files) {
6363
var _this = this;
6464

65-
[].concat(files).forEach(function (file) {
66-
var entryFile = Array.isArray(file) ? file[file.length - 1] : file;
67-
68-
var name = entryFile;
69-
if (name.indexOf('./') == 0) {
70-
name = name.substring(2);
71-
} else if (name[0] == '/') {
72-
name = name.substring(1);
73-
}
74-
_this._config.entry[name] = Array.isArray(file) ? file : [file];
75-
});
76-
return this;
65+
if (files && Array.isArray(files)) {
66+
[].concat(files).forEach(function (file) {
67+
var entryFile = Array.isArray(file) ? file[file.length - 1] : file;
68+
69+
var name = entryFile;
70+
if (name.indexOf('./') == 0) {
71+
name = name.substring(2);
72+
} else if (name[0] == '/') {
73+
name = name.substring(1);
74+
}
75+
_this._config.entry[name] = Array.isArray(file) ? file : [file];
76+
});
77+
return this;
78+
}
7779
}
7880
}, {
7981
key: 'setGroupExports',

lib/models/Project.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,12 @@ var Project = function () {
159159
this.config.setExports(configMethod);
160160
}
161161
if (typeof configMethod.config == 'function') {
162-
configMethod.config.call(userConfig, options, this.cwd);
162+
var userConfigObj = configMethod.config.call(userConfig, options, this.cwd);
163+
164+
this.config.setExports(userConfigObj.export);
165+
this.config.setCompiler(userConfigObj.modifyWebpackConfig);
166+
this.config.setSync(userConfigObj.sync);
167+
this.setCommands(userConfigObj.commands);
163168
} else {
164169
error(this.configFile + ' 没有 exports 正确的方法!');
165170
return this;

src/models/Config.js

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,20 @@ class Config {
5656
};
5757
}
5858
setExports(files) {
59-
[].concat(files).forEach((file) => {
60-
const entryFile = Array.isArray(file) ? file[file.length - 1] : file
59+
if(files && Array.isArray(files)) {
60+
[].concat(files).forEach((file) => {
61+
const entryFile = Array.isArray(file) ? file[file.length - 1] : file
6162

62-
var name = entryFile;
63-
if (name.indexOf('./') == 0) {
64-
name = name.substring(2);
65-
} else if (name[0] == '/') {
66-
name = name.substring(1);
67-
}
68-
this._config.entry[name] = Array.isArray(file) ? file : [file];
69-
});
70-
return this;
63+
var name = entryFile;
64+
if (name.indexOf('./') == 0) {
65+
name = name.substring(2);
66+
} else if (name[0] == '/') {
67+
name = name.substring(1);
68+
}
69+
this._config.entry[name] = Array.isArray(file) ? file : [file];
70+
});
71+
return this;
72+
}
7173
}
7274
setGroupExports(group, exportsArr) {
7375
let exportGroup = this._config.entryGroup;
@@ -114,7 +116,6 @@ class Config {
114116
})
115117
}
116118

117-
118119
// 处理alias
119120
const context = nextConfig.context || this._config.context
120121
const relativeContext = sysPath.relative(this._config.cwd, context)

src/models/Project.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,12 @@ class Project {
131131
this.config.setExports(configMethod);
132132
}
133133
if (typeof configMethod.config == 'function') {
134-
configMethod.config.call(userConfig, options, this.cwd);
134+
const userConfigObj = configMethod.config.call(userConfig, options, this.cwd);
135+
136+
this.config.setExports(userConfigObj.export);
137+
this.config.setCompiler(userConfigObj.modifyWebpackConfig);
138+
this.config.setSync(userConfigObj.sync);
139+
this.setCommands(userConfigObj.commands);
135140
} else {
136141
error(this.configFile + ' 没有 exports 正确的方法!');
137142
return this;

0 commit comments

Comments
 (0)