@douyinfe/semi-webpack-plugin 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js.map +1 -1
- package/lib/semi-omit-css-loader.d.ts +1 -0
- package/lib/semi-omit-css-loader.js +9 -0
- package/lib/semi-omit-css-loader.js.map +1 -0
- package/lib/semi-prefix-loader.d.ts +1 -0
- package/lib/semi-prefix-loader.js +9 -9
- package/lib/semi-prefix-loader.js.map +1 -1
- package/lib/semi-source-suffix-loader.d.ts +1 -0
- package/lib/semi-theme-loader.d.ts +1 -0
- package/lib/semi-theme-loader.js +23 -24
- package/lib/semi-theme-loader.js.map +1 -1
- package/lib/semi-webpack-plugin.d.ts +28 -0
- package/lib/semi-webpack-plugin.js +56 -50
- package/lib/semi-webpack-plugin.js.map +1 -1
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -136,3 +136,15 @@ The absolute path of the local Scss file.
|
|
|
136
136
|
Type: `Object`
|
|
137
137
|
|
|
138
138
|
The key-value pair of Scss token.
|
|
139
|
+
|
|
140
|
+
##### options.omitCss
|
|
141
|
+
|
|
142
|
+
Type: `Boolean`
|
|
143
|
+
|
|
144
|
+
In the compilation phase, whether to exclude css references.Used to solve the problem that Next.js does not support the global introduction of css in third-party code.See this [discussion](https://github.com/vercel/next.js/discussions/27953).
|
|
145
|
+
|
|
146
|
+
##### options.webpackContext.NormalModule
|
|
147
|
+
|
|
148
|
+
Type: `webpack NormalModule`
|
|
149
|
+
|
|
150
|
+
In webpack@5, some hooks need to be obtained through api `NormalModule.getCompilationHooks`. But in some scenarios, webpack will not be installed, such as Next.js. Therefore, the user is required to pass in NormalModule as a parameter.
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default, SemiWebpackPluginOptions, SemiThemeOptions, WebpackContext } from './semi-webpack-plugin';
|
|
2
|
+
export { default as semiThemeLoader } from './semi-theme-loader';
|
|
3
|
+
export { default as semiPrefixLoader } from './semi-prefix-loader';
|
|
4
|
+
export { default as semiSourceSuffixLoader } from './semi-source-suffix-loader';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6DAA4G;AAAnG,+HAAA,OAAO,OAAA;AAChB,yDAAiE;AAAxD,qIAAA,OAAO,OAAmB;AACnC,2DAAmE;AAA1D,uIAAA,OAAO,OAAoB;AACpC,yEAAgF;AAAvE,oJAAA,OAAO,OAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function semiOmitCssLoader(source: string): string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function semiOmitCssLoader(source) {
|
|
4
|
+
return source
|
|
5
|
+
.replace(/(import\s+['"][^'"]+\.css['"])/g, '// $1')
|
|
6
|
+
.replace(/(require\(['"][^'"]+\.css['"]\))/g, '// $1');
|
|
7
|
+
}
|
|
8
|
+
exports.default = semiOmitCssLoader;
|
|
9
|
+
//# sourceMappingURL=semi-omit-css-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semi-omit-css-loader.js","sourceRoot":"","sources":["../src/semi-omit-css-loader.ts"],"names":[],"mappings":";;AACA,SAAwB,iBAAiB,CAAC,MAAc;IACpD,OAAO,MAAM;SACR,OAAO,CAAC,iCAAiC,EAAE,OAAO,CAAC;SACnD,OAAO,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAJD,oCAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function semiPrefixLoader(source: string): string;
|
|
@@ -3,19 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
const loader_utils_1 = __importDefault(require("loader-utils"));
|
|
7
|
+
const parser_1 = require("@babel/parser");
|
|
8
|
+
const traverse_1 = __importDefault(require("@babel/traverse"));
|
|
9
|
+
const generator_1 = __importDefault(require("@babel/generator"));
|
|
10
10
|
function semiPrefixLoader(source) {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const query = loader_utils_1.default.getOptions(this);
|
|
12
|
+
const ast = (0, parser_1.parse)(source, {
|
|
13
13
|
sourceType: 'module'
|
|
14
14
|
});
|
|
15
15
|
(0, traverse_1.default)(ast, {
|
|
16
|
-
VariableDeclarator
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
VariableDeclarator(path) {
|
|
17
|
+
const { node } = path;
|
|
18
|
+
const replacerKeys = Object.keys(query.replacers);
|
|
19
19
|
if (replacerKeys.includes(node.id.name)) {
|
|
20
20
|
node.init.value = query.replacers[node.id.name];
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semi-prefix-loader.js","sourceRoot":"","sources":["../src/semi-prefix-loader.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"semi-prefix-loader.js","sourceRoot":"","sources":["../src/semi-prefix-loader.ts"],"names":[],"mappings":";;;;;AAAA,gEAAuC;AACvC,0CAAsC;AACtC,+DAAuC;AACvC,iEAAwC;AAExC,SAAwB,gBAAgB,CAAC,MAAc;IACnD,MAAM,KAAK,GAAG,sBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,MAAM,EAAE;QACtB,UAAU,EAAE,QAAQ;KACvB,CAAC,CAAC;IACH,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACV,kBAAkB,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACtB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,YAAY,CAAC,QAAQ,CAAE,IAAI,CAAC,EAAU,CAAC,IAAI,CAAC,EAAE;gBAC7C,IAAI,CAAC,IAAY,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAE,IAAI,CAAC,EAAU,CAAC,IAAI,CAAC,CAAC;aACrE;QACL,CAAC;KACJ,CAAC,CAAC;IACH,OAAO,IAAA,mBAAQ,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC9B,CAAC;AAfD,mCAeC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function semiSourceSuffixLoader(source: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function SemiThemeLoader(source: string): string;
|
package/lib/semi-theme-loader.js
CHANGED
|
@@ -3,37 +3,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var enhanced_resolve_1 = __importDefault(require("enhanced-resolve"));
|
|
6
|
+
const loader_utils_1 = __importDefault(require("loader-utils"));
|
|
7
|
+
const enhanced_resolve_1 = __importDefault(require("enhanced-resolve"));
|
|
9
8
|
function SemiThemeLoader(source) {
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const query = loader_utils_1.default.getOptions ? loader_utils_1.default.getOptions(this) : loader_utils_1.default.parseQuery(this.query);
|
|
10
|
+
const theme = query.name || '@douyinfe/semi-theme-default';
|
|
12
11
|
// always inject
|
|
13
|
-
|
|
12
|
+
const scssVarStr = `@import "~${theme}/scss/index.scss";\n`;
|
|
14
13
|
// inject once
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const cssVarStr = `@import "~${theme}/scss/global.scss";\n`;
|
|
15
|
+
const shouldInject = source.includes('semi-base');
|
|
16
|
+
let fileStr = source;
|
|
17
|
+
let componentVariables;
|
|
19
18
|
try {
|
|
20
|
-
componentVariables = enhanced_resolve_1.default.sync(this.context,
|
|
19
|
+
componentVariables = enhanced_resolve_1.default.sync(this.context, `${theme}/scss/local.scss`);
|
|
21
20
|
}
|
|
22
21
|
catch (e) { }
|
|
23
|
-
if (
|
|
24
|
-
|
|
22
|
+
if (query.include || query.variables || componentVariables) {
|
|
23
|
+
let localImport = '';
|
|
25
24
|
if (componentVariables) {
|
|
26
|
-
localImport +=
|
|
25
|
+
localImport += `\n@import "~${theme}/scss/local.scss";`;
|
|
27
26
|
}
|
|
28
|
-
if (
|
|
29
|
-
localImport +=
|
|
27
|
+
if (query.include) {
|
|
28
|
+
localImport += `\n@import "${query.include}";`;
|
|
30
29
|
}
|
|
31
|
-
if (
|
|
32
|
-
localImport +=
|
|
30
|
+
if (query.variables) {
|
|
31
|
+
localImport += `\n${query.variables}`;
|
|
33
32
|
}
|
|
34
33
|
try {
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
const regex = /(@import '.\/variables.scss';?|@import ".\/variables.scss";?)/g;
|
|
35
|
+
const fileSplit = source.split(regex).filter(item => Boolean(item));
|
|
37
36
|
if (fileSplit.length > 1) {
|
|
38
37
|
fileSplit.splice(fileSplit.length - 1, 0, localImport);
|
|
39
38
|
fileStr = fileSplit.join('');
|
|
@@ -42,13 +41,13 @@ function SemiThemeLoader(source) {
|
|
|
42
41
|
catch (error) { }
|
|
43
42
|
}
|
|
44
43
|
// inject prefix
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const prefixCls = query.prefixCls || 'semi';
|
|
45
|
+
const prefixClsStr = `$prefix: '${prefixCls}';\n`;
|
|
47
46
|
if (shouldInject) {
|
|
48
|
-
return
|
|
47
|
+
return `${cssVarStr}${scssVarStr}${prefixClsStr}${fileStr}`;
|
|
49
48
|
}
|
|
50
49
|
else {
|
|
51
|
-
return
|
|
50
|
+
return `${scssVarStr}${prefixClsStr}${fileStr}`;
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
53
|
exports.default = SemiThemeLoader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semi-theme-loader.js","sourceRoot":"","sources":["../src/semi-theme-loader.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"semi-theme-loader.js","sourceRoot":"","sources":["../src/semi-theme-loader.ts"],"names":[],"mappings":";;;;;AAAA,gEAAuC;AACvC,wEAAuC;AAEvC,SAAwB,eAAe,CAAC,MAAc;IAClD,MAAM,KAAK,GAAG,sBAAW,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,8BAA8B,CAAC;IAC3D,gBAAgB;IAChB,MAAM,UAAU,GAAG,aAAa,KAAK,sBAAsB,CAAC;IAC5D,cAAc;IACd,MAAM,SAAS,GAAG,aAAa,KAAK,uBAAuB,CAAC;IAE5D,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAElD,IAAI,OAAO,GAAG,MAAM,CAAC;IAErB,IAAI,kBAAoC,CAAC;IACzC,IAAI;QACA,kBAAkB,GAAG,0BAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,kBAAkB,CAAC,CAAC;KAC/E;IAAC,OAAM,CAAC,EAAE,GAAE;IAEb,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,kBAAkB,EAAE;QACxD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,kBAAkB,EAAE;YACpB,WAAW,IAAI,eAAe,KAAK,oBAAoB,CAAC;SAC3D;QACD,IAAI,KAAK,CAAC,OAAO,EAAE;YACf,WAAW,IAAI,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC;SAClD;QACD,IAAI,KAAK,CAAC,SAAS,EAAE;YACjB,WAAW,IAAI,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;SACzC;QACD,IAAI;YACA,MAAM,KAAK,GAAG,gEAAgE,CAAC;YAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBACvD,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAChC;SACJ;QAAC,OAAO,KAAK,EAAE,GAAE;KACrB;IAED,gBAAgB;IAChB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC;IAE5C,MAAM,YAAY,GAAG,aAAa,SAAS,MAAM,CAAC;IAElD,IAAI,YAAY,EAAE;QACd,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,EAAE,CAAC;KAC/D;SAAM;QACH,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,EAAE,CAAC;KACnD;AACL,CAAC;AAhDD,kCAgDC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface WebpackContext {
|
|
2
|
+
NormalModule?: any;
|
|
3
|
+
}
|
|
4
|
+
export interface SemiWebpackPluginOptions {
|
|
5
|
+
theme?: string | SemiThemeOptions;
|
|
6
|
+
prefixCls?: string;
|
|
7
|
+
variables?: {
|
|
8
|
+
[key: string]: string | number;
|
|
9
|
+
};
|
|
10
|
+
include?: string;
|
|
11
|
+
omitCss?: boolean;
|
|
12
|
+
webpackContext?: WebpackContext;
|
|
13
|
+
}
|
|
14
|
+
export interface SemiThemeOptions {
|
|
15
|
+
name?: string;
|
|
16
|
+
}
|
|
17
|
+
export default class SemiWebpackPlugin {
|
|
18
|
+
options: SemiWebpackPluginOptions;
|
|
19
|
+
constructor(options: SemiWebpackPluginOptions);
|
|
20
|
+
apply(compiler: any): void;
|
|
21
|
+
omitCss(module: any): void;
|
|
22
|
+
customTheme(module: any): void;
|
|
23
|
+
customPrefix(module: any, prefix: string): void;
|
|
24
|
+
hasSemiThemeLoader(loaders: any[]): boolean;
|
|
25
|
+
convertMapToString(map: {
|
|
26
|
+
[key: string]: string | number;
|
|
27
|
+
}): string;
|
|
28
|
+
}
|
|
@@ -1,62 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const utils_1 = require("./utils");
|
|
8
|
+
const _NormalModule_ = require('webpack/lib/NormalModule');
|
|
9
|
+
class SemiWebpackPlugin {
|
|
10
|
+
constructor(options) {
|
|
22
11
|
this.options = options;
|
|
23
12
|
}
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
apply(compiler) {
|
|
14
|
+
var _a;
|
|
15
|
+
const NormalModule = ((_a = this.options.webpackContext) === null || _a === void 0 ? void 0 : _a.NormalModule) || _NormalModule_;
|
|
16
|
+
compiler.hooks.compilation.tap('SemiPlugin', (compilation) => {
|
|
17
|
+
if (this.options.theme || this.options.prefixCls || this.options.omitCss) {
|
|
28
18
|
if (NormalModule.getCompilationHooks) {
|
|
29
|
-
NormalModule.getCompilationHooks(compilation).loader.tap('SemiPlugin',
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
NormalModule.getCompilationHooks(compilation).loader.tap('SemiPlugin', (context, module) => {
|
|
20
|
+
if (this.options.omitCss) {
|
|
21
|
+
this.omitCss(module);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.customTheme(module);
|
|
25
|
+
if (this.options.prefixCls) {
|
|
26
|
+
this.customPrefix(module, this.options.prefixCls);
|
|
33
27
|
}
|
|
34
28
|
});
|
|
35
29
|
}
|
|
36
30
|
else {
|
|
37
|
-
compilation.hooks.normalModuleLoader.tap('SemiPlugin',
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
compilation.hooks.normalModuleLoader.tap('SemiPlugin', (context, module) => {
|
|
32
|
+
if (this.options.omitCss) {
|
|
33
|
+
this.omitCss(module);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.customTheme(module);
|
|
37
|
+
if (this.options.prefixCls) {
|
|
38
|
+
this.customPrefix(module, this.options.prefixCls);
|
|
41
39
|
}
|
|
42
40
|
});
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
43
|
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (/@douyinfe\/semi-(ui|icons)\/.+\.js$/.test(compatiblePath)) {
|
|
44
|
+
}
|
|
45
|
+
omitCss(module) {
|
|
46
|
+
const compatiblePath = (0, utils_1.transformPath)(module.resource);
|
|
47
|
+
if (/@douyinfe\/semi-(ui|icons)\/lib\/.+\.js$/.test(compatiblePath)) {
|
|
48
|
+
module.loaders = module.loaders || [];
|
|
49
|
+
module.loaders.push({
|
|
50
|
+
loader: path_1.default.join(__dirname, 'semi-omit-css-loader')
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
customTheme(module) {
|
|
55
|
+
const compatiblePath = (0, utils_1.transformPath)(module.resource);
|
|
56
|
+
if (/@douyinfe\/semi-(ui|icons)\/lib\/.+\.js$/.test(compatiblePath)) {
|
|
50
57
|
module.loaders = module.loaders || [];
|
|
51
58
|
module.loaders.push({
|
|
52
59
|
loader: path_1.default.join(__dirname, 'semi-source-suffix-loader')
|
|
53
60
|
});
|
|
54
61
|
}
|
|
55
|
-
if (/@douyinfe\/semi-(ui|icons|foundation)\/.+\.scss$/.test(compatiblePath)) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
if (/@douyinfe\/semi-(ui|icons|foundation)\/lib\/.+\.scss$/.test(compatiblePath)) {
|
|
63
|
+
const scssLoader = require.resolve('sass-loader');
|
|
64
|
+
const cssLoader = require.resolve('css-loader');
|
|
65
|
+
const styleLoader = require.resolve('style-loader');
|
|
66
|
+
const semiSemiLoaderOptions = typeof this.options.theme === 'object' ? this.options.theme : {
|
|
60
67
|
name: this.options.theme
|
|
61
68
|
};
|
|
62
69
|
if (!this.hasSemiThemeLoader(module.loaders)) {
|
|
@@ -71,14 +78,14 @@ var SemiWebpackPlugin = /** @class */ (function () {
|
|
|
71
78
|
},
|
|
72
79
|
{
|
|
73
80
|
loader: path_1.default.join(__dirname, 'semi-theme-loader'),
|
|
74
|
-
options:
|
|
81
|
+
options: Object.assign(Object.assign({}, semiSemiLoaderOptions), { prefixCls: this.options.prefixCls, variables: this.convertMapToString(this.options.variables || {}), include: this.options.include })
|
|
75
82
|
}
|
|
76
83
|
];
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
}
|
|
87
|
+
customPrefix(module, prefix) {
|
|
88
|
+
const compatiblePath = (0, utils_1.transformPath)(module.resource);
|
|
82
89
|
if (/@douyinfe\/semi-[^/]+\/.+env\.js$/.test(compatiblePath)) {
|
|
83
90
|
module.loaders = module.loaders || [];
|
|
84
91
|
module.loaders.push({
|
|
@@ -90,16 +97,15 @@ var SemiWebpackPlugin = /** @class */ (function () {
|
|
|
90
97
|
}
|
|
91
98
|
});
|
|
92
99
|
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return (loaders || []).some(
|
|
96
|
-
}
|
|
97
|
-
|
|
100
|
+
}
|
|
101
|
+
hasSemiThemeLoader(loaders) {
|
|
102
|
+
return (loaders || []).some((loader) => /semi-theme-loader/.test(loader.loader));
|
|
103
|
+
}
|
|
104
|
+
convertMapToString(map) {
|
|
98
105
|
return Object.keys(map).reduce(function (prev, curr) {
|
|
99
|
-
return prev +
|
|
106
|
+
return prev + `${curr}: ${map[curr]};\n`;
|
|
100
107
|
}, '');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
}());
|
|
108
|
+
}
|
|
109
|
+
}
|
|
104
110
|
exports.default = SemiWebpackPlugin;
|
|
105
111
|
//# sourceMappingURL=semi-webpack-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semi-webpack-plugin.js","sourceRoot":"","sources":["../src/semi-webpack-plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"semi-webpack-plugin.js","sourceRoot":"","sources":["../src/semi-webpack-plugin.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function transformPath(path: string): string;
|
package/lib/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.transformPath = void 0;
|
|
7
|
-
|
|
7
|
+
const os_1 = __importDefault(require("os"));
|
|
8
8
|
function transformPath(path) {
|
|
9
9
|
if (os_1.default.platform() === 'win32') {
|
|
10
10
|
return path.replace(/[\\]+/g, '/');
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AAEpB,SAAgB,aAAa,CAAC,IAAY;IACtC,IAAI,YAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KACtC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AALD,sCAKC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douyinfe/semi-webpack-plugin",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "伍浩威 <wuhaowei.whw@bytedance.com>",
|
|
6
6
|
"homepage": "",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"README.md"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build:lib": "tsc",
|
|
17
|
+
"build:lib": "rimraf lib && tsc",
|
|
18
18
|
"prepublishOnly": "npm run build:lib"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
@@ -34,7 +34,8 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/loader-utils": "^2.0.3",
|
|
37
|
+
"rimraf": "^3.0.2",
|
|
37
38
|
"typescript": "^4"
|
|
38
39
|
},
|
|
39
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "49e7bdabe06525ab4990e5b12b5541e668aa6b11"
|
|
40
41
|
}
|