Skip to content

Commit 4f1baa2

Browse files
fix: performance (#1144)
1 parent f9ba0ce commit 4f1baa2

File tree

3 files changed

+33
-28
lines changed

3 files changed

+33
-28
lines changed

src/index.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ export default async function loader(content, map, meta) {
6262

6363
if (shouldUseImportPlugin(options)) {
6464
const resolver = this.getResolve({
65+
conditionNames: ['style'],
66+
extensions: ['.css'],
6567
mainFields: ['css', 'style', 'main', '...'],
6668
mainFiles: ['index', '...'],
67-
extensions: ['.css'],
6869
restrictions: [/\.css$/i],
69-
conditionNames: ['style'],
7070
});
7171

7272
plugins.push(
@@ -90,8 +90,9 @@ export default async function loader(content, map, meta) {
9090

9191
if (shouldUseURLPlugin(options)) {
9292
const urlResolver = this.getResolve({
93-
mainFields: ['asset'],
9493
conditionNames: ['asset'],
94+
mainFields: ['asset'],
95+
mainFiles: [],
9596
extensions: [],
9697
});
9798

@@ -113,10 +114,10 @@ export default async function loader(content, map, meta) {
113114

114115
if (needUseModulesPlugins || options.icss) {
115116
const icssResolver = this.getResolve({
117+
conditionNames: ['style'],
118+
extensions: [],
116119
mainFields: ['css', 'style', 'main', '...'],
117120
mainFiles: ['index', '...'],
118-
extensions: [],
119-
conditionNames: ['style'],
120121
});
121122

122123
plugins.push(

src/plugins/postcss-import-parser.js

+16-15
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,16 @@ export default postcss.plugin(pluginName, (options) => async (css, result) => {
108108
let normalizedUrl = url;
109109
let prefix = '';
110110

111-
const queryParts = normalizedUrl.split('!');
112-
113-
if (queryParts.length > 1) {
114-
normalizedUrl = queryParts.pop();
115-
prefix = queryParts.join('!');
116-
}
117-
118111
const isRequestable = isUrlRequestable(normalizedUrl);
119112

120113
if (isRequestable) {
114+
const queryParts = normalizedUrl.split('!');
115+
116+
if (queryParts.length > 1) {
117+
normalizedUrl = queryParts.pop();
118+
prefix = queryParts.join('!');
119+
}
120+
121121
normalizedUrl = normalizeUrl(normalizedUrl, isStringValue);
122122

123123
// Empty url after normalize - `@import '\
@@ -149,16 +149,17 @@ export default postcss.plugin(pluginName, (options) => async (css, result) => {
149149

150150
if (isRequestable) {
151151
const request = requestify(normalizedUrl, options.rootContext);
152-
const doResolve = async () => {
153-
const { resolver, context } = options;
154-
const resolvedUrl = await resolveRequests(resolver, context, [
155-
...new Set([request, normalizedUrl]),
156-
]);
157152

158-
return { url: resolvedUrl, media, prefix, isRequestable };
159-
};
153+
tasks.push(
154+
(async () => {
155+
const { resolver, context } = options;
156+
const resolvedUrl = await resolveRequests(resolver, context, [
157+
...new Set([request, normalizedUrl]),
158+
]);
160159

161-
tasks.push(doResolve());
160+
return { url: resolvedUrl, media, prefix, isRequestable };
161+
})()
162+
);
162163
} else {
163164
tasks.push({ url, media, prefix, isRequestable });
164165
}

src/plugins/postcss-url-parser.js

+11-8
Original file line numberDiff line numberDiff line change
@@ -169,16 +169,17 @@ export default postcss.plugin(pluginName, (options) => async (css, result) => {
169169
hash += hashOrQuery ? `#${hashOrQuery}` : '';
170170

171171
const request = requestify(pathname, options.rootContext);
172-
const doResolve = async () => {
173-
const { resolver, context } = options;
174-
const resolvedUrl = await resolveRequests(resolver, context, [
175-
...new Set([request, normalizedUrl]),
176-
]);
177172

178-
return { url: resolvedUrl, prefix, hash, parsedResult };
179-
};
173+
tasks.push(
174+
(async () => {
175+
const { resolver, context } = options;
176+
const resolvedUrl = await resolveRequests(resolver, context, [
177+
...new Set([request, normalizedUrl]),
178+
]);
180179

181-
tasks.push(doResolve());
180+
return { url: resolvedUrl, prefix, hash, parsedResult };
181+
})()
182+
);
182183
}
183184

184185
const results = await Promise.all(tasks);
@@ -230,5 +231,7 @@ export default postcss.plugin(pluginName, (options) => async (css, result) => {
230231
decl.value = parsed.toString();
231232
}
232233

234+
console.timeEnd('URL');
235+
233236
return Promise.resolve();
234237
});

0 commit comments

Comments
 (0)