mirror of https://github.com/webpack/webpack.git
feat: allow to use `falsy` loaders and plugins
This commit is contained in:
parent
90ee0510b1
commit
27cae68bda
|
@ -289,6 +289,10 @@ export type RuleSetConditionsAbsolute = RuleSetConditionAbsolute[];
|
|||
* A loader request.
|
||||
*/
|
||||
export type RuleSetLoader = string;
|
||||
/**
|
||||
* Falsy value.
|
||||
*/
|
||||
export type Falsy = false | 0 | "" | null;
|
||||
/**
|
||||
* Options passed to a loader.
|
||||
*/
|
||||
|
@ -325,14 +329,14 @@ export type ResolveAlias =
|
|||
* A list of descriptions of loaders applied.
|
||||
*/
|
||||
export type RuleSetUse =
|
||||
| RuleSetUseItem[]
|
||||
| (Falsy | RuleSetUseItem)[]
|
||||
| ((data: {
|
||||
resource: string;
|
||||
realResource: string;
|
||||
resourceQuery: string;
|
||||
issuer: string;
|
||||
compiler: string;
|
||||
}) => RuleSetUseItem[])
|
||||
}) => (Falsy | RuleSetUseItem)[])
|
||||
| RuleSetUseItem;
|
||||
/**
|
||||
* A description of an applied loader.
|
||||
|
@ -352,12 +356,12 @@ export type RuleSetUseItem =
|
|||
*/
|
||||
options?: RuleSetLoaderOptions;
|
||||
}
|
||||
| ((data: object) => RuleSetUseItem | RuleSetUseItem[])
|
||||
| ((data: object) => RuleSetUseItem | (Falsy | RuleSetUseItem)[])
|
||||
| RuleSetLoader;
|
||||
/**
|
||||
* A list of rules.
|
||||
*/
|
||||
export type RuleSetRules = ("..." | RuleSetRule)[];
|
||||
export type RuleSetRules = ("..." | (false | 0 | "" | null) | RuleSetRule)[];
|
||||
/**
|
||||
* Specify options for each generator.
|
||||
*/
|
||||
|
@ -596,7 +600,7 @@ export type Performance = false | PerformanceOptions;
|
|||
/**
|
||||
* Add additional plugins to the compiler.
|
||||
*/
|
||||
export type Plugins = (WebpackPluginInstance | WebpackPluginFunction)[];
|
||||
export type Plugins = (Falsy | WebpackPluginInstance | WebpackPluginFunction)[];
|
||||
/**
|
||||
* Capture timing information for each module.
|
||||
*/
|
||||
|
@ -1392,7 +1396,7 @@ export interface RuleSetRule {
|
|||
/**
|
||||
* Only execute the first matching rule in this array.
|
||||
*/
|
||||
oneOf?: RuleSetRule[];
|
||||
oneOf?: (Falsy | RuleSetRule)[];
|
||||
/**
|
||||
* Shortcut for use.options.
|
||||
*/
|
||||
|
@ -1695,7 +1699,7 @@ export interface Optimization {
|
|||
/**
|
||||
* Minimizer(s) to use for minimizing the output.
|
||||
*/
|
||||
minimizer?: ("..." | WebpackPluginInstance | WebpackPluginFunction)[];
|
||||
minimizer?: ("..." | Falsy | WebpackPluginInstance | WebpackPluginFunction)[];
|
||||
/**
|
||||
* Define the algorithm to choose module ids (natural: numeric ids in order of usage, named: readable ids for better debugging, hashed: (deprecated) short hashes as ids for better long term caching, deterministic: numeric hash ids for better long term caching, size: numeric ids focused on minimal initial download size, false: no algorithm used, as custom one can be provided via plugin).
|
||||
*/
|
||||
|
|
|
@ -1073,9 +1073,11 @@ ${other}`);
|
|||
childCompiler.root = this.root;
|
||||
if (Array.isArray(plugins)) {
|
||||
for (const plugin of plugins) {
|
||||
if (plugin) {
|
||||
plugin.apply(childCompiler);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const name in this.hooks) {
|
||||
if (
|
||||
![
|
||||
|
|
|
@ -566,7 +566,7 @@ class WebpackOptionsApply extends OptionsApply {
|
|||
for (const minimizer of options.optimization.minimizer) {
|
||||
if (typeof minimizer === "function") {
|
||||
minimizer.call(compiler, compiler);
|
||||
} else if (minimizer !== "...") {
|
||||
} else if (minimizer !== "..." && minimizer) {
|
||||
minimizer.apply(compiler);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -150,9 +150,9 @@ class RuleSetCompiler {
|
|||
* @returns {CompiledRule[]} rules
|
||||
*/
|
||||
compileRules(path, rules, refs) {
|
||||
return rules.map((rule, i) =>
|
||||
this.compileRule(`${path}[${i}]`, rule, refs)
|
||||
);
|
||||
return rules
|
||||
.filter(Boolean)
|
||||
.map((rule, i) => this.compileRule(`${path}[${i}]`, rule, refs));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -106,7 +106,9 @@ class UseEffectRulePlugin {
|
|||
*/
|
||||
const useToEffectsWithoutIdent = (path, items) => {
|
||||
if (Array.isArray(items)) {
|
||||
return items.map((item, idx) =>
|
||||
return items
|
||||
.filter(Boolean)
|
||||
.map((item, idx) =>
|
||||
useToEffectRaw(`${path}[${idx}]`, "[[missing ident]]", item)
|
||||
);
|
||||
}
|
||||
|
@ -120,7 +122,7 @@ class UseEffectRulePlugin {
|
|||
*/
|
||||
const useToEffects = (path, items) => {
|
||||
if (Array.isArray(items)) {
|
||||
return items.map((item, idx) => {
|
||||
return items.filter(Boolean).map((item, idx) => {
|
||||
const subPath = `${path}[${idx}]`;
|
||||
return useToEffect(subPath, subPath, item);
|
||||
});
|
||||
|
|
|
@ -69,7 +69,7 @@ const createCompiler = rawOptions => {
|
|||
for (const plugin of options.plugins) {
|
||||
if (typeof plugin === "function") {
|
||||
plugin.call(compiler, compiler);
|
||||
} else {
|
||||
} else if (plugin) {
|
||||
plugin.apply(compiler);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
"core-js": "^3.6.5",
|
||||
"coveralls": "^3.1.0",
|
||||
"cspell": "^6.31.1",
|
||||
"css-loader": "^5.0.1",
|
||||
"css-loader": "^6.8.1",
|
||||
"date-fns": "^2.15.0",
|
||||
"es5-ext": "^0.10.53",
|
||||
"es6-promise-polyfill": "^1.2.0",
|
||||
|
@ -91,10 +91,12 @@
|
|||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"sass": "^1.62.1",
|
||||
"sass-loader": "^13.3.1",
|
||||
"script-loader": "^0.7.2",
|
||||
"simple-git": "^3.17.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"style-loader": "^2.0.0",
|
||||
"style-loader": "^3.3.3",
|
||||
"terser": "^5.17.0",
|
||||
"toml": "^3.0.0",
|
||||
"tooling": "webpack/tooling#v1.22.1",
|
||||
|
|
|
@ -1145,6 +1145,10 @@
|
|||
"node-commonjs"
|
||||
]
|
||||
},
|
||||
"Falsy": {
|
||||
"description": "Falsy value.",
|
||||
"enum": [false, 0, "", null]
|
||||
},
|
||||
"FileCacheOptions": {
|
||||
"description": "Options object for persistent file-based caching.",
|
||||
"type": "object",
|
||||
|
@ -2476,6 +2480,9 @@
|
|||
{
|
||||
"enum": ["..."]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/Falsy"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/WebpackPluginInstance"
|
||||
},
|
||||
|
@ -3577,6 +3584,9 @@
|
|||
"items": {
|
||||
"description": "Plugin of type object or instanceof Function.",
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Falsy"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/WebpackPluginInstance"
|
||||
},
|
||||
|
@ -4288,6 +4298,9 @@
|
|||
"items": {
|
||||
"description": "A rule.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Falsy"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RuleSetRule"
|
||||
}
|
||||
|
@ -4409,6 +4422,12 @@
|
|||
},
|
||||
"enum": ["..."]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/Falsy",
|
||||
"cli": {
|
||||
"exclude": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RuleSetRule"
|
||||
}
|
||||
|
@ -4423,6 +4442,9 @@
|
|||
"items": {
|
||||
"description": "An use item.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Falsy"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RuleSetUseItem"
|
||||
}
|
||||
|
@ -4431,7 +4453,7 @@
|
|||
},
|
||||
{
|
||||
"instanceof": "Function",
|
||||
"tsType": "((data: { resource: string, realResource: string, resourceQuery: string, issuer: string, compiler: string }) => RuleSetUseItem[])"
|
||||
"tsType": "((data: { resource: string, realResource: string, resourceQuery: string, issuer: string, compiler: string }) => (Falsy | RuleSetUseItem)[])"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RuleSetUseItem"
|
||||
|
@ -4469,7 +4491,7 @@
|
|||
},
|
||||
{
|
||||
"instanceof": "Function",
|
||||
"tsType": "((data: object) => RuleSetUseItem|RuleSetUseItem[])"
|
||||
"tsType": "((data: object) => RuleSetUseItem | (Falsy | RuleSetUseItem)[])"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RuleSetLoader"
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
export default "test";
|
|
@ -0,0 +1 @@
|
|||
export default "test";
|
|
@ -0,0 +1 @@
|
|||
export default "test";
|
|
@ -0,0 +1,10 @@
|
|||
import foo from "./foo.js?external";
|
||||
import bar from "./bar.js";
|
||||
import baz from "./baz.js?custom-use";
|
||||
|
||||
it("should work with falsy plugins and loaders", function() {
|
||||
expect(ONE).toBe("ONE");
|
||||
expect(foo.endsWith("?external")).toBe(true);
|
||||
expect(bar).toBe("test");
|
||||
expect(baz).toBe("test");
|
||||
});
|
|
@ -0,0 +1,102 @@
|
|||
var DefinePlugin = require("../../../../").DefinePlugin;
|
||||
|
||||
const nullValue = null;
|
||||
// TODO fix me
|
||||
const undefinedValue = null;
|
||||
const falseValue = false;
|
||||
const zeroValue = 0;
|
||||
const emptyStringValue = "";
|
||||
|
||||
class FailPlugin {
|
||||
apply() {
|
||||
throw new Error("FailedPlugin");
|
||||
}
|
||||
}
|
||||
|
||||
class TestChildCompilationPlugin {
|
||||
constructor(output) {}
|
||||
|
||||
apply(compiler) {
|
||||
compiler.hooks.make.tapAsync(
|
||||
"TestChildCompilationFailurePlugin",
|
||||
(compilation, cb) => {
|
||||
const child = compilation.createChildCompiler(
|
||||
"name",
|
||||
compiler.outputOptions,
|
||||
[
|
||||
undefinedValue && new FailPlugin(),
|
||||
nullValue && new FailPlugin(),
|
||||
falseValue && new FailPlugin(),
|
||||
zeroValue && new FailPlugin(),
|
||||
emptyStringValue && new FailPlugin()
|
||||
]
|
||||
);
|
||||
|
||||
child.runAsChild(cb);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/** @type {import("../../../../").Configuration} */
|
||||
module.exports = {
|
||||
module: {
|
||||
defaultRules: [
|
||||
nullValue && {
|
||||
test: /\.js$/,
|
||||
loader: "unknown-loader"
|
||||
},
|
||||
"..."
|
||||
],
|
||||
rules: [
|
||||
// Will failed because we don't have unknown-loader
|
||||
nullValue && {
|
||||
test: /\.js$/,
|
||||
loader: "unknown-loader"
|
||||
},
|
||||
{
|
||||
test: /foo\.js$/,
|
||||
oneOf: [
|
||||
nullValue && {
|
||||
resourceQuery: /inline/,
|
||||
loader: "unknown-loader"
|
||||
},
|
||||
{
|
||||
resourceQuery: /external/,
|
||||
type: "asset/resource"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /bar\.js$/,
|
||||
use: [nullValue && "unknown-loader"]
|
||||
},
|
||||
{
|
||||
test: /baz\.js$/,
|
||||
resourceQuery: /custom-use/,
|
||||
use: () => {
|
||||
return [
|
||||
nullValue && {
|
||||
loader: "unknown-loader"
|
||||
}
|
||||
];
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
new DefinePlugin({
|
||||
ONE: JSON.stringify("ONE")
|
||||
}),
|
||||
new TestChildCompilationPlugin(),
|
||||
undefinedValue && new FailPlugin(),
|
||||
nullValue && new FailPlugin(),
|
||||
falseValue && new FailPlugin(),
|
||||
zeroValue && new FailPlugin(),
|
||||
emptyStringValue && new FailPlugin()
|
||||
],
|
||||
optimization: {
|
||||
minimize: true,
|
||||
minimizer: [nullValue && new FailPlugin()]
|
||||
}
|
||||
};
|
|
@ -2378,6 +2378,10 @@ declare interface Configuration {
|
|||
* Add additional plugins to the compiler.
|
||||
*/
|
||||
plugins?: (
|
||||
| null
|
||||
| false
|
||||
| ""
|
||||
| 0
|
||||
| ((this: Compiler, compiler: Compiler) => void)
|
||||
| WebpackPluginInstance
|
||||
)[];
|
||||
|
@ -7691,7 +7695,7 @@ declare interface ModuleOptions {
|
|||
/**
|
||||
* An array of rules applied by default for modules.
|
||||
*/
|
||||
defaultRules?: (RuleSetRule | "...")[];
|
||||
defaultRules?: (null | false | "" | 0 | RuleSetRule | "...")[];
|
||||
|
||||
/**
|
||||
* Enable warnings for full dynamic dependencies.
|
||||
|
@ -7731,7 +7735,7 @@ declare interface ModuleOptions {
|
|||
/**
|
||||
* An array of rules applied for modules.
|
||||
*/
|
||||
rules?: (RuleSetRule | "...")[];
|
||||
rules?: (null | false | "" | 0 | RuleSetRule | "...")[];
|
||||
|
||||
/**
|
||||
* Emit errors instead of warnings when imported names don't exist in imported module. Deprecated: This option has moved to 'module.parser.javascript.strictExportPresence'.
|
||||
|
@ -7791,7 +7795,7 @@ declare interface ModuleOptionsNormalized {
|
|||
/**
|
||||
* An array of rules applied by default for modules.
|
||||
*/
|
||||
defaultRules: (RuleSetRule | "...")[];
|
||||
defaultRules: (null | false | "" | 0 | RuleSetRule | "...")[];
|
||||
|
||||
/**
|
||||
* Specify options for each generator.
|
||||
|
@ -7811,7 +7815,7 @@ declare interface ModuleOptionsNormalized {
|
|||
/**
|
||||
* An array of rules applied for modules.
|
||||
*/
|
||||
rules: (RuleSetRule | "...")[];
|
||||
rules: (null | false | "" | 0 | RuleSetRule | "...")[];
|
||||
|
||||
/**
|
||||
* Cache the resolving of module requests.
|
||||
|
@ -8609,6 +8613,10 @@ declare interface Optimization {
|
|||
* Minimizer(s) to use for minimizing the output.
|
||||
*/
|
||||
minimizer?: (
|
||||
| null
|
||||
| false
|
||||
| ""
|
||||
| 0
|
||||
| ((this: Compiler, compiler: Compiler) => void)
|
||||
| WebpackPluginInstance
|
||||
| "..."
|
||||
|
@ -10752,7 +10760,7 @@ declare interface RuleSetRule {
|
|||
/**
|
||||
* Only execute the first matching rule in this array.
|
||||
*/
|
||||
oneOf?: RuleSetRule[];
|
||||
oneOf?: (null | false | "" | 0 | RuleSetRule)[];
|
||||
|
||||
/**
|
||||
* Shortcut for use.options.
|
||||
|
@ -10849,14 +10857,11 @@ declare interface RuleSetRule {
|
|||
*/
|
||||
use?:
|
||||
| string
|
||||
| RuleSetUseItem[]
|
||||
| ((data: {
|
||||
resource: string;
|
||||
realResource: string;
|
||||
resourceQuery: string;
|
||||
issuer: string;
|
||||
compiler: string;
|
||||
}) => RuleSetUseItem[])
|
||||
| (
|
||||
| null
|
||||
| string
|
||||
| false
|
||||
| 0
|
||||
| {
|
||||
/**
|
||||
* Unique loader options identifier.
|
||||
|
@ -10888,18 +10893,78 @@ declare interface RuleSetRule {
|
|||
options?: string | { [index: string]: any };
|
||||
}
|
||||
| __TypeWebpackOptions
|
||||
| RuleSetUseItem[]);
|
||||
}
|
||||
type RuleSetUse =
|
||||
| string
|
||||
| RuleSetUseItem[]
|
||||
| __Type_2[])
|
||||
)[]
|
||||
| ((data: {
|
||||
resource: string;
|
||||
realResource: string;
|
||||
resourceQuery: string;
|
||||
issuer: string;
|
||||
compiler: string;
|
||||
}) => RuleSetUseItem[])
|
||||
}) => __Type_2[])
|
||||
| {
|
||||
/**
|
||||
* Unique loader options identifier.
|
||||
*/
|
||||
ident?: string;
|
||||
/**
|
||||
* Loader name.
|
||||
*/
|
||||
loader?: string;
|
||||
/**
|
||||
* Loader options.
|
||||
*/
|
||||
options?: string | { [index: string]: any };
|
||||
}
|
||||
| __TypeWebpackOptions;
|
||||
}
|
||||
type RuleSetUse =
|
||||
| string
|
||||
| (
|
||||
| null
|
||||
| string
|
||||
| false
|
||||
| 0
|
||||
| {
|
||||
/**
|
||||
* Unique loader options identifier.
|
||||
*/
|
||||
ident?: string;
|
||||
/**
|
||||
* Loader name.
|
||||
*/
|
||||
loader?: string;
|
||||
/**
|
||||
* Loader options.
|
||||
*/
|
||||
options?: string | { [index: string]: any };
|
||||
}
|
||||
| ((data: object) =>
|
||||
| string
|
||||
| {
|
||||
/**
|
||||
* Unique loader options identifier.
|
||||
*/
|
||||
ident?: string;
|
||||
/**
|
||||
* Loader name.
|
||||
*/
|
||||
loader?: string;
|
||||
/**
|
||||
* Loader options.
|
||||
*/
|
||||
options?: string | { [index: string]: any };
|
||||
}
|
||||
| __TypeWebpackOptions
|
||||
| __Type_2[])
|
||||
)[]
|
||||
| ((data: {
|
||||
resource: string;
|
||||
realResource: string;
|
||||
resourceQuery: string;
|
||||
issuer: string;
|
||||
compiler: string;
|
||||
}) => __Type_2[])
|
||||
| {
|
||||
/**
|
||||
* Unique loader options identifier.
|
||||
|
@ -13155,6 +13220,10 @@ declare interface WebpackOptionsNormalized {
|
|||
* Add additional plugins to the compiler.
|
||||
*/
|
||||
plugins: (
|
||||
| null
|
||||
| false
|
||||
| ""
|
||||
| 0
|
||||
| ((this: Compiler, compiler: Compiler) => void)
|
||||
| WebpackPluginInstance
|
||||
)[];
|
||||
|
@ -13252,7 +13321,44 @@ type __TypeWebpackOptions = (data: object) =>
|
|||
options?: string | { [index: string]: any };
|
||||
}
|
||||
| __TypeWebpackOptions
|
||||
| RuleSetUseItem[];
|
||||
| __Type_2[];
|
||||
type __Type_2 =
|
||||
| null
|
||||
| string
|
||||
| false
|
||||
| 0
|
||||
| {
|
||||
/**
|
||||
* Unique loader options identifier.
|
||||
*/
|
||||
ident?: string;
|
||||
/**
|
||||
* Loader name.
|
||||
*/
|
||||
loader?: string;
|
||||
/**
|
||||
* Loader options.
|
||||
*/
|
||||
options?: string | { [index: string]: any };
|
||||
}
|
||||
| ((data: object) =>
|
||||
| string
|
||||
| {
|
||||
/**
|
||||
* Unique loader options identifier.
|
||||
*/
|
||||
ident?: string;
|
||||
/**
|
||||
* Loader name.
|
||||
*/
|
||||
loader?: string;
|
||||
/**
|
||||
* Loader options.
|
||||
*/
|
||||
options?: string | { [index: string]: any };
|
||||
}
|
||||
| __TypeWebpackOptions
|
||||
| __Type_2[]);
|
||||
declare function exports(
|
||||
options: Configuration,
|
||||
callback?: CallbackWebpack<Stats>
|
||||
|
|
75
yarn.lock
75
yarn.lock
|
@ -1889,7 +1889,7 @@ character-parser@^2.2.0:
|
|||
dependencies:
|
||||
is-regex "^1.0.3"
|
||||
|
||||
chokidar@^3.5.3:
|
||||
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
|
||||
version "3.5.3"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
|
||||
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
||||
|
@ -2302,21 +2302,19 @@ cspell@^6.31.1:
|
|||
strip-ansi "^6.0.1"
|
||||
vscode-uri "^3.0.7"
|
||||
|
||||
css-loader@^5.0.1:
|
||||
version "5.2.7"
|
||||
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae"
|
||||
integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==
|
||||
css-loader@^6.8.1:
|
||||
version "6.8.1"
|
||||
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88"
|
||||
integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==
|
||||
dependencies:
|
||||
icss-utils "^5.1.0"
|
||||
loader-utils "^2.0.0"
|
||||
postcss "^8.2.15"
|
||||
postcss "^8.4.21"
|
||||
postcss-modules-extract-imports "^3.0.0"
|
||||
postcss-modules-local-by-default "^4.0.0"
|
||||
postcss-modules-local-by-default "^4.0.3"
|
||||
postcss-modules-scope "^3.0.0"
|
||||
postcss-modules-values "^4.0.0"
|
||||
postcss-value-parser "^4.1.0"
|
||||
schema-utils "^3.0.0"
|
||||
semver "^7.3.5"
|
||||
postcss-value-parser "^4.2.0"
|
||||
semver "^7.3.8"
|
||||
|
||||
cssesc@^3.0.0:
|
||||
version "3.0.0"
|
||||
|
@ -3373,6 +3371,11 @@ image-size@~0.5.0:
|
|||
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
|
||||
integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be"
|
||||
integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==
|
||||
|
||||
import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
||||
|
@ -4217,7 +4220,7 @@ kleur@^3.0.3:
|
|||
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
|
||||
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
|
||||
|
||||
klona@^2.0.4:
|
||||
klona@^2.0.4, klona@^2.0.6:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22"
|
||||
integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==
|
||||
|
@ -5024,10 +5027,10 @@ postcss-modules-extract-imports@^3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
|
||||
integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
|
||||
|
||||
postcss-modules-local-by-default@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
|
||||
integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
|
||||
postcss-modules-local-by-default@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524"
|
||||
integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==
|
||||
dependencies:
|
||||
icss-utils "^5.0.0"
|
||||
postcss-selector-parser "^6.0.2"
|
||||
|
@ -5055,15 +5058,15 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
|
|||
cssesc "^3.0.0"
|
||||
util-deprecate "^1.0.2"
|
||||
|
||||
postcss-value-parser@^4.1.0:
|
||||
postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
||||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||
|
||||
postcss@^8.2.15:
|
||||
version "8.4.22"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.22.tgz#c29e6776b60ab3af602d4b513d5bd2ff9aa85dc1"
|
||||
integrity sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==
|
||||
postcss@^8.4.21:
|
||||
version "8.4.24"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df"
|
||||
integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==
|
||||
dependencies:
|
||||
nanoid "^3.3.6"
|
||||
picocolors "^1.0.0"
|
||||
|
@ -5533,6 +5536,23 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
|
|||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sass-loader@^13.3.1:
|
||||
version "13.3.1"
|
||||
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.1.tgz#32ee5791434b9b4dbd1adcce76fcb4cea49cc12c"
|
||||
integrity sha512-cBTxmgyVA1nXPvIK4brjJMXOMJ2v2YrQEuHqLw3LylGb3gsR6jAvdjHMcy/+JGTmmIF9SauTrLLR7bsWDMWqgg==
|
||||
dependencies:
|
||||
klona "^2.0.6"
|
||||
neo-async "^2.6.2"
|
||||
|
||||
sass@^1.62.1:
|
||||
version "1.62.1"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.62.1.tgz#caa8d6bf098935bc92fc73fa169fb3790cacd029"
|
||||
integrity sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==
|
||||
dependencies:
|
||||
chokidar ">=3.0.0 <4.0.0"
|
||||
immutable "^4.0.0"
|
||||
source-map-js ">=0.6.2 <2.0.0"
|
||||
|
||||
sax@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||
|
@ -5673,7 +5693,7 @@ source-list-map@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
|
||||
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
|
||||
|
||||
source-map-js@^1.0.2:
|
||||
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||
|
@ -5863,13 +5883,10 @@ strtok3@^7.0.0:
|
|||
"@tokenizer/token" "^0.3.0"
|
||||
peek-readable "^5.0.0"
|
||||
|
||||
style-loader@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c"
|
||||
integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==
|
||||
dependencies:
|
||||
loader-utils "^2.0.0"
|
||||
schema-utils "^3.0.0"
|
||||
style-loader@^3.3.3:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff"
|
||||
integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==
|
||||
|
||||
supports-color@^3.1.0:
|
||||
version "3.2.3"
|
||||
|
|
Loading…
Reference in New Issue