@douyinfe/semi-webpack-plugin 2.0.8 → 2.1.0-next.0

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 \"~" + theme + "/scss/index.scss\";\n";
12
+ const scssVarStr = `@import "~${theme}/scss/index.scss";\n`;
14
13
  // inject once
15
- var cssVarStr = "@import \"~" + 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, 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 \"~" + 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 \"" + 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" + 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: '" + prefixCls + "';\n";
44
+ const prefixCls = query.prefixCls || 'semi';
45
+ const prefixClsStr = `$prefix: '${prefixCls}';\n`;
47
46
  if (shouldInject) {
48
- return "" + cssVarStr + scssVarStr + prefixClsStr + fileStr;
47
+ return `${cssVarStr}${scssVarStr}${prefixClsStr}${fileStr}`;
49
48
  }
50
49
  else {
51
- return "" + scssVarStr + prefixClsStr + 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,gBAAa,KAAK,0BAAsB,CAAC;IAC5D,cAAc;IACd,IAAM,SAAS,GAAG,gBAAa,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,EAAK,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,kBAAe,KAAK,wBAAoB,CAAC;SAC3D;QACD,IAAI,IAAA,YAAG,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE;YACvB,WAAW,IAAI,iBAAc,KAAK,CAAC,OAAO,QAAI,CAAC;SAClD;QACD,IAAI,IAAA,YAAG,EAAC,KAAK,EAAE,WAAW,CAAC,EAAE;YACzB,WAAW,IAAI,OAAK,KAAK,CAAC,SAAW,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,eAAa,SAAS,SAAM,CAAC;IAElD,IAAI,YAAY,EAAE;QACd,OAAO,KAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAS,CAAC;KAC/D;SAAM;QACH,OAAO,KAAG,UAAU,GAAG,YAAY,GAAG,OAAS,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 + (curr + ": " + 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":"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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
- 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.0.8",
3
+ "version": "2.1.0-next.0",
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": "0a2a5df053d415ee634ae3c5b8aa24915aa2cf9b"
40
+ "gitHead": "165521f2a49e95bf358c03b7f376dbc84ec02adc"
40
41
  }