@douyinfe/semi-webpack-plugin 2.1.0 → 2.1.4

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 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,6DAAgD;AAAvC,+HAAA,OAAO,OAAA;AAChB,yDAAiE;AAAxD,qIAAA,OAAO,OAAmB;AACnC,2DAAmE;AAA1D,uIAAA,OAAO,OAAoB;AACpC,yEAAgF;AAAvE,oJAAA,OAAO,OAA0B"}
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
- var loader_utils_1 = __importDefault(require("loader-utils"));
7
- var parser_1 = require("@babel/parser");
8
- var traverse_1 = __importDefault(require("@babel/traverse"));
9
- var generator_1 = __importDefault(require("@babel/generator"));
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
- var query = loader_utils_1.default.getOptions ? loader_utils_1.default.getOptions(this) : loader_utils_1.default.parseQuery(this.query);
12
- var ast = (0, parser_1.parse)(source, {
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: function (path) {
17
- var node = path.node;
18
- var replacerKeys = Object.keys(query.replacers);
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,8DAAuC;AACvC,wCAAsC;AACtC,6DAAuC;AACvC,+DAAwC;AAExC,SAAwB,gBAAgB,CAAC,MAAc;IACnD,IAAM,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,IAAM,GAAG,GAAG,IAAA,cAAK,EAAC,MAAM,EAAE;QACtB,UAAU,EAAE,QAAQ;KACvB,CAAC,CAAC;IACH,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACV,kBAAkB,EAAlB,UAAmB,IAAI;YACX,IAAA,IAAI,GAAK,IAAI,KAAT,CAAU;YACtB,IAAM,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"}
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;
@@ -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
- var loader_utils_1 = __importDefault(require("loader-utils"));
7
- var lodash_1 = require("lodash");
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
- var query = loader_utils_1.default.getOptions ? loader_utils_1.default.getOptions(this) : loader_utils_1.default.parseQuery(this.query);
11
- var theme = (0, lodash_1.get)(query, 'name', '@douyinfe/semi-theme-default');
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
- var scssVarStr = "@import \"~".concat(theme, "/scss/index.scss\";\n");
12
+ const scssVarStr = `@import "~${theme}/scss/index.scss";\n`;
14
13
  // inject once
15
- var cssVarStr = "@import \"~".concat(theme, "/scss/global.scss\";\n");
16
- var shouldInject = source.includes('semi-base');
17
- var fileStr = source;
18
- var componentVariables;
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, "".concat(theme, "/scss/local.scss"));
19
+ componentVariables = enhanced_resolve_1.default.sync(this.context, `${theme}/scss/local.scss`);
21
20
  }
22
21
  catch (e) { }
23
- if ((0, lodash_1.get)(query, 'include') || (0, lodash_1.get)(query, 'variables') || componentVariables) {
24
- var localImport = '';
22
+ if (query.include || query.variables || componentVariables) {
23
+ let localImport = '';
25
24
  if (componentVariables) {
26
- localImport += "\n@import \"~".concat(theme, "/scss/local.scss\";");
25
+ localImport += `\n@import "~${theme}/scss/local.scss";`;
27
26
  }
28
- if ((0, lodash_1.get)(query, 'include')) {
29
- localImport += "\n@import \"".concat(query.include, "\";");
27
+ if (query.include) {
28
+ localImport += `\n@import "${query.include}";`;
30
29
  }
31
- if ((0, lodash_1.get)(query, 'variables')) {
32
- localImport += "\n".concat(query.variables);
30
+ if (query.variables) {
31
+ localImport += `\n${query.variables}`;
33
32
  }
34
33
  try {
35
- var regex = /(@import '.\/variables.scss';?|@import ".\/variables.scss";?)/g;
36
- var fileSplit = source.split(regex).filter(function (item) { return Boolean(item); });
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
- var prefixCls = (0, lodash_1.get)(query, 'prefixCls', 'semi');
46
- var prefixClsStr = "$prefix: '".concat(prefixCls, "';\n");
44
+ const prefixCls = query.prefixCls || 'semi';
45
+ const prefixClsStr = `$prefix: '${prefixCls}';\n`;
47
46
  if (shouldInject) {
48
- return "".concat(cssVarStr).concat(scssVarStr).concat(prefixClsStr).concat(fileStr);
47
+ return `${cssVarStr}${scssVarStr}${prefixClsStr}${fileStr}`;
49
48
  }
50
49
  else {
51
- return "".concat(scssVarStr).concat(prefixClsStr).concat(fileStr);
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,8DAAuC;AACvC,iCAA6B;AAC7B,sEAAuC;AAEvC,SAAwB,eAAe,CAAC,MAAc;IAClD,IAAM,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,IAAM,KAAK,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACjE,gBAAgB;IAChB,IAAM,UAAU,GAAG,qBAAa,KAAK,0BAAsB,CAAC;IAC5D,cAAc;IACd,IAAM,SAAS,GAAG,qBAAa,KAAK,2BAAuB,CAAC;IAE5D,IAAM,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,UAAG,KAAK,qBAAkB,CAAC,CAAC;KAC/E;IAAC,OAAM,CAAC,EAAE,GAAE;IAEb,IAAI,IAAA,YAAG,EAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAA,YAAG,EAAC,KAAK,EAAE,WAAW,CAAC,IAAI,kBAAkB,EAAE;QACxE,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,kBAAkB,EAAE;YACpB,WAAW,IAAI,uBAAe,KAAK,wBAAoB,CAAC;SAC3D;QACD,IAAI,IAAA,YAAG,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE;YACvB,WAAW,IAAI,sBAAc,KAAK,CAAC,OAAO,QAAI,CAAC;SAClD;QACD,IAAI,IAAA,YAAG,EAAC,KAAK,EAAE,WAAW,CAAC,EAAE;YACzB,WAAW,IAAI,YAAK,KAAK,CAAC,SAAS,CAAE,CAAC;SACzC;QACD,IAAI;YACA,IAAM,KAAK,GAAG,gEAAgE,CAAC;YAC/E,IAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,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,IAAM,SAAS,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAElD,IAAM,YAAY,GAAG,oBAAa,SAAS,SAAM,CAAC;IAElD,IAAI,YAAY,EAAE;QACd,OAAO,UAAG,SAAS,SAAG,UAAU,SAAG,YAAY,SAAG,OAAO,CAAE,CAAC;KAC/D;SAAM;QACH,OAAO,UAAG,UAAU,SAAG,YAAY,SAAG,OAAO,CAAE,CAAC;KACnD;AACL,CAAC;AAhDD,kCAgDC"}
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
- var path_1 = __importDefault(require("path"));
18
- var utils_1 = require("./utils");
19
- var NormalModule = require('webpack/lib/NormalModule');
20
- var SemiWebpackPlugin = /** @class */ (function () {
21
- function SemiWebpackPlugin(options) {
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
- SemiWebpackPlugin.prototype.apply = function (compiler) {
25
- var _this = this;
26
- compiler.hooks.compilation.tap('SemiPlugin', function (compilation) {
27
- if (_this.options.theme || _this.options.prefixCls) {
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', function (context, module) {
30
- _this.customTheme(module);
31
- if (_this.options.prefixCls) {
32
- _this.customPrefix(module, _this.options.prefixCls);
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', function (context, module) {
38
- _this.customTheme(module);
39
- if (_this.options.prefixCls) {
40
- _this.customPrefix(module, _this.options.prefixCls);
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
- SemiWebpackPlugin.prototype.customTheme = function (module) {
48
- var compatiblePath = (0, utils_1.transformPath)(module.resource);
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
- var scssLoader = require.resolve('sass-loader');
57
- var cssLoader = require.resolve('css-loader');
58
- var styleLoader = require.resolve('style-loader');
59
- var semiSemiLoaderOptions = typeof this.options.theme === 'object' ? this.options.theme : {
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: __assign(__assign({}, semiSemiLoaderOptions), { prefixCls: this.options.prefixCls, variables: this.convertMapToString(this.options.variables || {}), include: this.options.include })
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
- SemiWebpackPlugin.prototype.customPrefix = function (module, prefix) {
81
- var compatiblePath = (0, utils_1.transformPath)(module.resource);
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
- SemiWebpackPlugin.prototype.hasSemiThemeLoader = function (loaders) {
95
- return (loaders || []).some(function (loader) { return /semi-theme-loader/.test(loader.loader); });
96
- };
97
- SemiWebpackPlugin.prototype.convertMapToString = function (map) {
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 + "".concat(curr, ": ").concat(map[curr], ";\n");
106
+ return prev + `${curr}: ${map[curr]};\n`;
100
107
  }, '');
101
- };
102
- return SemiWebpackPlugin;
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":"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"}
1
+ {"version":3,"file":"semi-webpack-plugin.js","sourceRoot":"","sources":["../src/semi-webpack-plugin.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,mCAAwC;AACxC,MAAM,cAAc,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAkB3D,MAAqB,iBAAiB;IAGlC,YAAY,OAAiC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAa;;QACf,MAAM,YAAY,GAAG,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,0CAAE,YAAY,KAAI,cAAc,CAAC;QACjF,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,WAAgB,EAAE,EAAE;YAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtE,IAAI,YAAY,CAAC,mBAAmB,EAAE;oBAClC,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,OAAY,EAAE,MAAW,EAAE,EAAE;wBACjG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;4BACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;4BACrB,OAAO;yBACV;wBACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;4BACxB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;yBACrD;oBACL,CAAC,CAAC,CAAA;iBACL;qBAAM;oBACH,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,OAAY,EAAE,MAAW,EAAE,EAAE;wBACjF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;4BACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;4BACrB,OAAO;yBACV;wBACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;4BACxB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;yBACrD;oBACL,CAAC,CAAC,CAAA;iBACL;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,MAAW;QACf,MAAM,cAAc,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,0CAA0C,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACjE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC;aACvD,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,MAAM,cAAc,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,0CAA0C,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACjE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC;aAC5D,CAAC,CAAC;SACN;QACD,IAAI,uDAAuD,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACpD,MAAM,qBAAqB,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxF,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;aAC3B,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC1C,MAAM,CAAC,OAAO,GAAG;oBACb;wBACI,MAAM,EAAE,WAAW;qBACtB;oBACD;wBACI,MAAM,EAAE,SAAS;qBACpB,EAAE;wBACC,MAAM,EAAE,UAAU;qBACrB;oBACD;wBACI,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC;wBACjD,OAAO,kCACA,qBAAqB,KACxB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EACjC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAChE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,GAChC;qBACJ;iBAAC,CAAC;aACV;SACJ;IACL,CAAC;IAED,YAAY,CAAC,MAAW,EAAE,MAAc;QACpC,MAAM,cAAc,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,mCAAmC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YAC1D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC;gBAClD,OAAO,EAAE;oBACL,SAAS,EAAE;wBACP,iBAAiB,EAAE,MAAM;qBAC5B;iBACJ;aACJ,CAAC,CAAC;SACN;IACL,CAAC;IAED,kBAAkB,CAAC,OAAc;QAC7B,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,kBAAkB,CAAC,GAAqC;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,IAAI;YAC/C,OAAO,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;CACJ;AA9GD,oCA8GC"}
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
- var os_1 = __importDefault(require("os"));
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,0CAAoB;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"}
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.0",
3
+ "version": "2.1.4",
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": "337c5b02a791cf46483e0273c8dc842a9eab222f"
40
+ "gitHead": "c6ce83aa28229d455cba4c01bc84c53f76c57c78"
40
41
  }