From 16908a9d36ef631f20c63a36767e7695cff16159 Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Wed, 15 Jun 2022 01:23:40 +0800 Subject: [PATCH] feat(scope-plugin-options): add disableScopePlugin plugin. --- packages/scope-plugin-options/README.md | 22 ++++++++++++++++------ packages/scope-plugin-options/package.json | 3 +++ packages/scope-plugin-options/src/index.ts | 17 +++++++++++++++-- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/packages/scope-plugin-options/README.md b/packages/scope-plugin-options/README.md index 847b2985..ee6c549c 100644 --- a/packages/scope-plugin-options/README.md +++ b/packages/scope-plugin-options/README.md @@ -61,22 +61,32 @@ import path from 'path'; import scopePluginOptions from '@kkt/scope-plugin-options'; export default (conf, evn, options) => { - return scopePluginOptions(conf, evn, { - allowedFiles: [ - path.resolve(process.cwd(), 'README.md') - ] - }); + return scopePluginOptions(conf, evn, false); +} +``` + +Disable scopePlugin + +```js +import path from 'path'; +import { disableScopePlugin } from '@kkt/scope-plugin-options'; + +export default (conf, evn, options) => { + return disableScopePlugin(conf); } ``` ### API ```ts -type ReactLibraryOptions = LoaderConfOptions & { +import { Configuration } from 'webpack'; +import { LoaderConfOptions } from 'kkt'; +export declare type ReactLibraryOptions = LoaderConfOptions & { allowedFiles?: ReadonlyArray; allowedPaths?: ReadonlyArray; appSrcs?: string | ReadonlyArray; }; +export default function scopePluginOptions(conf: Configuration, env: string, options: ReactLibraryOptions | false): Configuration; ``` ### License diff --git a/packages/scope-plugin-options/package.json b/packages/scope-plugin-options/package.json index 426e9d2e..7d4d484c 100644 --- a/packages/scope-plugin-options/package.json +++ b/packages/scope-plugin-options/package.json @@ -16,6 +16,9 @@ "lib", "src" ], + "scripts": { + "watch": "tsbb watch --no-esm" + }, "devDependencies": { "kkt": "7.1.7" } diff --git a/packages/scope-plugin-options/src/index.ts b/packages/scope-plugin-options/src/index.ts index 7b707c10..fa52c339 100644 --- a/packages/scope-plugin-options/src/index.ts +++ b/packages/scope-plugin-options/src/index.ts @@ -9,15 +9,28 @@ export type ReactLibraryOptions = LoaderConfOptions & { const regexp = /(ModuleScopePlugin)/; +export function disableScopePlugin(conf: Configuration) { + conf.resolve.plugins = conf.resolve.plugins + .map((plugin) => { + if (plugin.constructor && plugin.constructor.name && regexp.test(plugin.constructor.name)) { + return undefined; + } + return plugin; + }) + .filter(Boolean); + return conf; +} + export default function scopePluginOptions( conf: Configuration, env: string, - options = {} as ReactLibraryOptions, + options: ReactLibraryOptions, ): Configuration { if (!conf) { throw Error('KKT:@kkt/scope-plugin-options: there is no config found'); } - const { allowedFiles, appSrcs, allowedPaths } = options; + const { allowedFiles, appSrcs, allowedPaths } = options || {}; + const moduleScopePlugin = conf.resolve.plugins.find( (plugin) => plugin.constructor && plugin.constructor.name && regexp.test(plugin.constructor.name), );