Skip to content

Commit 1dc86b9

Browse files
authored
fix: improve the pure CSS content extraction logic in semi-extract-css-content-loader (#3014)
1 parent 674e152 commit 1dc86b9

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

packages/semi-rspack/src/loaders/semi-extract-css-content-loader.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ import { LoaderContext } from 'webpack';
77
* @description
88
* 此 loader 用于从 css-loader 处理后的 js 代码中获取纯 css 样式字符串
99
* source 是经过 css-loader 处理后的 js 代码。要获取其中的 css 样式字符串,需经过如下操作:
10-
* 1. 通过识别module.id, "做为开头,", ""]);作为结尾拿到中间的 css 代码
10+
* 1. 通过识别module.id, "或者module.id, `做为开头,", ""]);或者`, ""]);做为结尾拿到中间的 css 代码
1111
* 2. 将 文本中的 \n 替换为空字符串
1212
*/
1313
export default function semiExtractCssContentLoader(this: LoaderContext<void>, source: string) {
14-
const beginContent = 'module.id, "';
15-
const endContent = '", ""]);';
14+
const beginContent = 'module.id, ';
15+
const endContent = ', ""]);';
1616
let begInIndex = source.indexOf(beginContent);
1717
let endIndex = source.length;
1818
let result = source;
1919
if (begInIndex !== -1) {
2020
endIndex = source.lastIndexOf(endContent);
2121
if (endIndex !== -1) {
22-
result = source.slice(begInIndex + beginContent.length, endIndex);
22+
result = source.slice(begInIndex + beginContent.length + 1, endIndex - 1);
2323
result = result.replace(/\\n/g, "");
2424
}
2525
}

packages/semi-webpack/src/semi-extract-css-content-loader.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@
55
* @description
66
* 此 loader 用于从 css-loader 处理后的 js 代码中获取纯 css 样式字符串
77
* source 是经过 css-loader 处理后的 js 代码。要获取其中的 css 样式字符串,需经过如下操作:
8-
* 1. 通过识别module.id, "做为开头,", ""]);作为结尾拿到中间的 css 代码
8+
* 1. 通过识别module.id, "或者module.id, `做为开头,", ""]);或者`, ""]);做为结尾拿到中间的 css 代码
99
* 2. 将 文本中的 \n 替换为空字符串
1010
*/
1111

1212
export default function semiExtractCssContentLoader(source: string) {
13-
const beginContent = 'module.id, "';
14-
const endContent = '", ""]);';
13+
const beginContent = 'module.id, ';
14+
const endContent = ', ""]);';
1515
let begInIndex = source.indexOf(beginContent);
1616
let endIndex = source.length;
1717
let result = source;
1818
if (begInIndex !== -1) {
1919
endIndex = source.lastIndexOf(endContent);
2020
if (endIndex !== -1) {
21-
result = source.slice(begInIndex + beginContent.length, endIndex);
21+
result = source.slice(begInIndex + beginContent.length + 1, endIndex - 1);
2222
result = result.replace(/\\n/g, "");
2323
}
2424
}

0 commit comments

Comments
 (0)