Skip to content

Commit e2205af

Browse files
fix: respected style field from package.json
1 parent b8e7732 commit e2205af

File tree

3 files changed

+33
-2
lines changed

3 files changed

+33
-2
lines changed

src/index.js

+15-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
getModulesPlugins,
2222
normalizeSourceMap,
2323
shouldUseModulesPlugins,
24+
sortByName,
2425
} from './utils';
2526

2627
export default function loader(content, map, meta) {
@@ -137,11 +138,24 @@ export default function loader(content, map, meta) {
137138
imports.sort((a, b) => a.index - b.index);
138139
apiImports.sort((a, b) => a.index - b.index);
139140

141+
const sortedImports = sortByName(imports, [
142+
'CSS_LOADER_ICSS_IMPORT',
143+
'CSS_LOADER_AT_RULE_IMPORT',
144+
'CSS_LOADER_GET_URL_IMPORT',
145+
'CSS_LOADER_URL_IMPORT',
146+
'CSS_LOADER_URL_REPLACEMENT',
147+
]);
148+
140149
const { localsConvention } = options;
141150
const esModule =
142151
typeof options.esModule !== 'undefined' ? options.esModule : false;
143152

144-
const importCode = getImportCode(this, exportType, imports, esModule);
153+
const importCode = getImportCode(
154+
this,
155+
exportType,
156+
sortedImports,
157+
esModule
158+
);
145159
const moduleCode = getModuleCode(
146160
result,
147161
exportType,

src/plugins/postcss-url-parser.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ export default postcss.plugin(pluginName, (options) => (css, result) => {
6565

6666
let hasHelper = false;
6767

68+
let index = 0;
69+
6870
css.walkDecls((decl) => {
6971
if (!needParseDecl.test(decl.value)) {
7072
return;
@@ -99,6 +101,8 @@ export default postcss.plugin(pluginName, (options) => (css, result) => {
99101
const importKey = normalizedUrl;
100102
let importName = importsMap.get(importKey);
101103

104+
index += 1;
105+
102106
if (!importName) {
103107
importName = `___CSS_LOADER_URL_IMPORT_${importsMap.size}___`;
104108
importsMap.set(importKey, importName);
@@ -114,6 +118,7 @@ export default postcss.plugin(pluginName, (options) => (css, result) => {
114118
url: options.urlHandler
115119
? options.urlHandler(urlToHelper)
116120
: urlToHelper,
121+
index,
117122
},
118123
});
119124

@@ -128,6 +133,7 @@ export default postcss.plugin(pluginName, (options) => (css, result) => {
128133
url: options.urlHandler
129134
? options.urlHandler(normalizedUrl)
130135
: normalizedUrl,
136+
index,
131137
},
132138
});
133139
}
@@ -142,7 +148,7 @@ export default postcss.plugin(pluginName, (options) => (css, result) => {
142148
result.messages.push({
143149
pluginName,
144150
type: 'url-replacement',
145-
value: { replacementName, importName, hash, needQuotes },
151+
value: { replacementName, importName, hash, needQuotes, index },
146152
});
147153
}
148154

src/utils.js

+11
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,16 @@ async function resolveRequests(resolve, context, possibleRequests) {
442442
});
443443
}
444444

445+
function sortByName(array, orderNames) {
446+
const result = [];
447+
448+
for (const name of orderNames) {
449+
result.push(...array.filter((i) => i.importName.includes(name)));
450+
}
451+
452+
return result;
453+
}
454+
445455
export {
446456
normalizeUrl,
447457
getFilter,
@@ -453,4 +463,5 @@ export {
453463
getExportCode,
454464
shouldUseModulesPlugins,
455465
resolveRequests,
466+
sortByName,
456467
};

0 commit comments

Comments
 (0)