@rsbuild/plugin-svgr 1.0.3 → 1.0.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/dist/index.cjs +209 -168
- package/dist/index.js +155 -145
- package/dist/loader.cjs +102 -74
- package/package.json +9 -10
- package/dist-types/package.json +0 -1
- /package/{dist-types → dist}/index.d.ts +0 -0
- /package/{dist-types → dist}/loader.d.ts +0 -0
package/dist/index.cjs
CHANGED
|
@@ -1,175 +1,216 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
2
|
+
// The require scope
|
|
3
|
+
var __webpack_require__ = {};
|
|
4
|
+
/************************************************************************/ // webpack/runtime/compat_get_default_export
|
|
5
|
+
(()=>{
|
|
6
|
+
// getDefaultExport function for compatibility with non-harmony modules
|
|
7
|
+
__webpack_require__.n = function(module) {
|
|
8
|
+
var getter = module && module.__esModule ? function() {
|
|
9
|
+
return module['default'];
|
|
10
|
+
} : function() {
|
|
11
|
+
return module;
|
|
12
|
+
};
|
|
13
|
+
__webpack_require__.d(getter, {
|
|
14
|
+
a: getter
|
|
15
|
+
});
|
|
16
|
+
return getter;
|
|
17
|
+
};
|
|
18
|
+
})();
|
|
19
|
+
// webpack/runtime/define_property_getters
|
|
20
|
+
(()=>{
|
|
21
|
+
__webpack_require__.d = function(exports1, definition) {
|
|
22
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: definition[key]
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
// webpack/runtime/has_own_property
|
|
29
|
+
(()=>{
|
|
30
|
+
__webpack_require__.o = function(obj, prop) {
|
|
31
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
32
|
+
};
|
|
33
|
+
})();
|
|
34
|
+
// webpack/runtime/make_namespace_object
|
|
35
|
+
(()=>{
|
|
36
|
+
// define __esModule on exports
|
|
37
|
+
__webpack_require__.r = function(exports1) {
|
|
38
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
39
|
+
value: 'Module'
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
42
|
+
value: true
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
/************************************************************************/ var __webpack_exports__ = {};
|
|
47
|
+
// ESM COMPAT FLAG
|
|
48
|
+
__webpack_require__.r(__webpack_exports__);
|
|
49
|
+
// EXPORTS
|
|
50
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
51
|
+
PLUGIN_SVGR_NAME: ()=>/* binding */ PLUGIN_SVGR_NAME,
|
|
52
|
+
pluginSvgr: ()=>/* binding */ pluginSvgr
|
|
35
53
|
});
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
var dedupeSvgoPlugins = (config) => {
|
|
57
|
-
if (!config.plugins) {
|
|
58
|
-
return config;
|
|
59
|
-
}
|
|
60
|
-
let mergedPlugins = [];
|
|
61
|
-
for (const plugin of config.plugins) {
|
|
62
|
-
if (typeof plugin === "string") {
|
|
63
|
-
const exist = mergedPlugins.find(
|
|
64
|
-
(item) => item === plugin || typeof item === "object" && item.name === plugin
|
|
65
|
-
);
|
|
66
|
-
if (!exist) {
|
|
67
|
-
mergedPlugins.push(plugin);
|
|
68
|
-
}
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
const strIndex = mergedPlugins.findIndex(
|
|
72
|
-
(item) => typeof item === "string" && item === plugin.name
|
|
73
|
-
);
|
|
74
|
-
if (strIndex !== -1) {
|
|
75
|
-
mergedPlugins[strIndex] = plugin;
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
let isMerged = false;
|
|
79
|
-
mergedPlugins = mergedPlugins.map((item) => {
|
|
80
|
-
if (typeof item === "object" && item.name === plugin.name) {
|
|
81
|
-
isMerged = true;
|
|
82
|
-
return (0, import_deepmerge.default)(item, plugin);
|
|
83
|
-
}
|
|
84
|
-
return item;
|
|
54
|
+
const external_node_path_namespaceObject = require("node:path");
|
|
55
|
+
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
56
|
+
const plugin_react_namespaceObject = require("@rsbuild/plugin-react");
|
|
57
|
+
const external_deepmerge_namespaceObject = require("deepmerge");
|
|
58
|
+
var external_deepmerge_default = /*#__PURE__*/ __webpack_require__.n(external_deepmerge_namespaceObject);
|
|
59
|
+
const SVG_REGEX = /\.svg$/;
|
|
60
|
+
const getSvgoDefaultConfig = ()=>({
|
|
61
|
+
plugins: [
|
|
62
|
+
{
|
|
63
|
+
name: 'preset-default',
|
|
64
|
+
params: {
|
|
65
|
+
overrides: {
|
|
66
|
+
// viewBox is required to resize SVGs with CSS.
|
|
67
|
+
// @see https://github.com/svg/svgo/issues/1128
|
|
68
|
+
removeViewBox: false
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
'prefixIds'
|
|
73
|
+
]
|
|
85
74
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
svgoConfig: getSvgoDefaultConfig()
|
|
112
|
-
},
|
|
113
|
-
options.svgrOptions || {}
|
|
114
|
-
);
|
|
115
|
-
svgrOptions.svgoConfig = dedupeSvgoPlugins(svgrOptions.svgoConfig);
|
|
116
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_URL).type("asset/resource").resourceQuery(/(__inline=false|url)/).set("generator", generatorOptions);
|
|
117
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_INLINE).type("asset/inline").resourceQuery(/inline/);
|
|
118
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_REACT).type("javascript/auto").resourceQuery(options.query || /react/).use(CHAIN_ID.USE.SVGR).loader(import_node_path.default.resolve(__dirname, "./loader.cjs")).options({
|
|
119
|
-
...svgrOptions,
|
|
120
|
-
exportType: "default"
|
|
121
|
-
}).end();
|
|
122
|
-
const { mixedImport = false } = options;
|
|
123
|
-
if (mixedImport || svgrOptions.exportType) {
|
|
124
|
-
const { exportType = mixedImport ? "named" : void 0 } = svgrOptions;
|
|
125
|
-
const issuerInclude = [
|
|
126
|
-
/\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/,
|
|
127
|
-
/\.mdx$/
|
|
128
|
-
];
|
|
129
|
-
const issuer = options.excludeImporter ? { and: [issuerInclude, { not: options.excludeImporter }] } : issuerInclude;
|
|
130
|
-
const svgRule = rule.oneOf(CHAIN_ID.ONE_OF.SVG);
|
|
131
|
-
if (options.exclude) {
|
|
132
|
-
svgRule.exclude.add(options.exclude);
|
|
133
|
-
}
|
|
134
|
-
svgRule.type("javascript/auto").set("issuer", issuer).use(CHAIN_ID.USE.SVGR).loader(import_node_path.default.resolve(__dirname, "./loader.cjs")).options({
|
|
135
|
-
...svgrOptions,
|
|
136
|
-
exportType
|
|
137
|
-
}).end();
|
|
138
|
-
if (mixedImport && exportType === "named") {
|
|
139
|
-
svgRule.use(CHAIN_ID.USE.URL).loader(import_node_path.default.join(__dirname, "../compiled", "url-loader/index.js")).options({
|
|
140
|
-
limit: maxSize,
|
|
141
|
-
name: generatorOptions?.filename
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_ASSET).type("asset").parser({
|
|
146
|
-
// Inline SVG if size < maxSize
|
|
147
|
-
dataUrlCondition: {
|
|
148
|
-
maxSize
|
|
149
|
-
}
|
|
150
|
-
}).set("generator", generatorOptions);
|
|
151
|
-
const jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS);
|
|
152
|
-
[CHAIN_ID.USE.SWC, CHAIN_ID.USE.BABEL].some((jsUseId) => {
|
|
153
|
-
const use = jsRule.uses.get(jsUseId);
|
|
154
|
-
if (!use) {
|
|
155
|
-
return false;
|
|
75
|
+
/**
|
|
76
|
+
* Dedupe SVGO plugins config.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* Input:
|
|
80
|
+
* {
|
|
81
|
+
* plugins: [
|
|
82
|
+
* { name: 'preset-default', params: { foo: true }],
|
|
83
|
+
* { name: 'preset-default', params: { bar: true }],
|
|
84
|
+
* ]
|
|
85
|
+
* }
|
|
86
|
+
* Output:
|
|
87
|
+
* {
|
|
88
|
+
* plugins: [
|
|
89
|
+
* { name: 'preset-default', params: { foo: true, bar: true }],
|
|
90
|
+
* ]
|
|
91
|
+
* }
|
|
92
|
+
*/ const dedupeSvgoPlugins = (config)=>{
|
|
93
|
+
if (!config.plugins) return config;
|
|
94
|
+
let mergedPlugins = [];
|
|
95
|
+
for (const plugin of config.plugins){
|
|
96
|
+
if ('string' == typeof plugin) {
|
|
97
|
+
const exist = mergedPlugins.find((item)=>item === plugin || 'object' == typeof item && item.name === plugin);
|
|
98
|
+
if (!exist) mergedPlugins.push(plugin);
|
|
99
|
+
continue;
|
|
156
100
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
]) {
|
|
161
|
-
if (!rule.oneOfs.has(oneOfId)) {
|
|
101
|
+
const strIndex = mergedPlugins.findIndex((item)=>'string' == typeof item && item === plugin.name);
|
|
102
|
+
if (-1 !== strIndex) {
|
|
103
|
+
mergedPlugins[strIndex] = plugin;
|
|
162
104
|
continue;
|
|
163
|
-
}
|
|
164
|
-
rule.oneOf(oneOfId).use(jsUseId).before(CHAIN_ID.USE.SVGR).loader(use.get("loader")).options(use.get("options"));
|
|
165
105
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
106
|
+
let isMerged = false;
|
|
107
|
+
mergedPlugins = mergedPlugins.map((item)=>{
|
|
108
|
+
if ('object' == typeof item && item.name === plugin.name) {
|
|
109
|
+
isMerged = true;
|
|
110
|
+
return external_deepmerge_default()(item, plugin);
|
|
111
|
+
}
|
|
112
|
+
return item;
|
|
113
|
+
});
|
|
114
|
+
if (!isMerged) mergedPlugins.push(plugin);
|
|
115
|
+
}
|
|
116
|
+
config.plugins = mergedPlugins;
|
|
117
|
+
return config;
|
|
118
|
+
};
|
|
119
|
+
const PLUGIN_SVGR_NAME = 'rsbuild:svgr';
|
|
120
|
+
const pluginSvgr = function() {
|
|
121
|
+
let options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
122
|
+
return {
|
|
123
|
+
name: PLUGIN_SVGR_NAME,
|
|
124
|
+
pre: [
|
|
125
|
+
plugin_react_namespaceObject.PLUGIN_REACT_NAME
|
|
126
|
+
],
|
|
127
|
+
setup (api) {
|
|
128
|
+
api.modifyBundlerChain(async (chain, param)=>{
|
|
129
|
+
let { CHAIN_ID, environment } = param;
|
|
130
|
+
const { config } = environment;
|
|
131
|
+
const { dataUriLimit } = config.output;
|
|
132
|
+
const maxSize = 'number' == typeof dataUriLimit ? dataUriLimit : dataUriLimit.svg;
|
|
133
|
+
let generatorOptions = {};
|
|
134
|
+
if (chain.module.rules.has(CHAIN_ID.RULE.SVG)) {
|
|
135
|
+
generatorOptions = chain.module.rules.get(CHAIN_ID.RULE.SVG).oneOfs.get(CHAIN_ID.ONE_OF.SVG_URL).get('generator');
|
|
136
|
+
// delete Rsbuild builtin SVG rules
|
|
137
|
+
chain.module.rules.delete(CHAIN_ID.RULE.SVG);
|
|
138
|
+
}
|
|
139
|
+
const rule = chain.module.rule(CHAIN_ID.RULE.SVG).test(SVG_REGEX);
|
|
140
|
+
const svgrOptions = external_deepmerge_default()({
|
|
141
|
+
svgo: true,
|
|
142
|
+
svgoConfig: getSvgoDefaultConfig()
|
|
143
|
+
}, options.svgrOptions || {});
|
|
144
|
+
svgrOptions.svgoConfig = dedupeSvgoPlugins(svgrOptions.svgoConfig);
|
|
145
|
+
// force to url: "foo.svg?url",
|
|
146
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_URL).type('asset/resource').resourceQuery(/(__inline=false|url)/).set('generator', generatorOptions);
|
|
147
|
+
// force to inline: "foo.svg?inline"
|
|
148
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_INLINE).type('asset/inline').resourceQuery(/inline/);
|
|
149
|
+
// force to react component: "foo.svg?react"
|
|
150
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_REACT).type('javascript/auto').resourceQuery(options.query || /react/).use(CHAIN_ID.USE.SVGR).loader(external_node_path_default().resolve(__dirname, './loader.cjs')).options({
|
|
151
|
+
...svgrOptions,
|
|
152
|
+
exportType: 'default'
|
|
153
|
+
}).end();
|
|
154
|
+
// SVG in JS files
|
|
155
|
+
const { mixedImport = false } = options;
|
|
156
|
+
if (mixedImport || svgrOptions.exportType) {
|
|
157
|
+
const { exportType = mixedImport ? 'named' : void 0 } = svgrOptions;
|
|
158
|
+
const issuerInclude = [
|
|
159
|
+
/\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/,
|
|
160
|
+
/\.mdx$/
|
|
161
|
+
];
|
|
162
|
+
const issuer = options.excludeImporter ? {
|
|
163
|
+
and: [
|
|
164
|
+
issuerInclude,
|
|
165
|
+
{
|
|
166
|
+
not: options.excludeImporter
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
} : issuerInclude;
|
|
170
|
+
const svgRule = rule.oneOf(CHAIN_ID.ONE_OF.SVG);
|
|
171
|
+
if (options.exclude) svgRule.exclude.add(options.exclude);
|
|
172
|
+
svgRule.type('javascript/auto') // The issuer option ensures that SVGR will only apply if the SVG is imported from a JS file.
|
|
173
|
+
.set('issuer', issuer).use(CHAIN_ID.USE.SVGR).loader(external_node_path_default().resolve(__dirname, './loader.cjs')).options({
|
|
174
|
+
...svgrOptions,
|
|
175
|
+
exportType
|
|
176
|
+
}).end();
|
|
177
|
+
/**
|
|
178
|
+
* For mixed import.
|
|
179
|
+
* @example import logoUrl, { ReactComponent } from './logo.svg';`
|
|
180
|
+
*/ if (mixedImport && 'named' === exportType) svgRule.use(CHAIN_ID.USE.URL).loader(external_node_path_default().join(__dirname, '../compiled', 'url-loader/index.js')).options({
|
|
181
|
+
limit: maxSize,
|
|
182
|
+
name: null == generatorOptions ? void 0 : generatorOptions.filename
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// SVG as assets
|
|
186
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_ASSET).type('asset').parser({
|
|
187
|
+
// Inline SVG if size < maxSize
|
|
188
|
+
dataUrlCondition: {
|
|
189
|
+
maxSize
|
|
190
|
+
}
|
|
191
|
+
}).set('generator', generatorOptions);
|
|
192
|
+
// apply current JS transform rule to SVGR rules
|
|
193
|
+
const jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS);
|
|
194
|
+
[
|
|
195
|
+
CHAIN_ID.USE.SWC,
|
|
196
|
+
CHAIN_ID.USE.BABEL
|
|
197
|
+
].some((jsUseId)=>{
|
|
198
|
+
const use = jsRule.uses.get(jsUseId);
|
|
199
|
+
if (!use) return false;
|
|
200
|
+
for (const oneOfId of [
|
|
201
|
+
CHAIN_ID.ONE_OF.SVG,
|
|
202
|
+
CHAIN_ID.ONE_OF.SVG_REACT
|
|
203
|
+
]){
|
|
204
|
+
if (!!rule.oneOfs.has(oneOfId)) rule.oneOf(oneOfId).use(jsUseId).before(CHAIN_ID.USE.SVGR).loader(use.get('loader')).options(use.get('options'));
|
|
205
|
+
}
|
|
206
|
+
return true;
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
var __webpack_export_target__ = exports;
|
|
213
|
+
for(var i in __webpack_exports__)__webpack_export_target__[i] = __webpack_exports__[i];
|
|
214
|
+
if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
|
|
215
|
+
value: true
|
|
175
216
|
});
|
package/dist/index.js
CHANGED
|
@@ -1,150 +1,160 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
overrides: {
|
|
23
|
-
// viewBox is required to resize SVGs with CSS.
|
|
24
|
-
// @see https://github.com/svg/svgo/issues/1128
|
|
25
|
-
removeViewBox: false
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"prefixIds"
|
|
30
|
-
]
|
|
31
|
-
});
|
|
32
|
-
var dedupeSvgoPlugins = (config) => {
|
|
33
|
-
if (!config.plugins) {
|
|
34
|
-
return config;
|
|
35
|
-
}
|
|
36
|
-
let mergedPlugins = [];
|
|
37
|
-
for (const plugin of config.plugins) {
|
|
38
|
-
if (typeof plugin === "string") {
|
|
39
|
-
const exist = mergedPlugins.find(
|
|
40
|
-
(item) => item === plugin || typeof item === "object" && item.name === plugin
|
|
41
|
-
);
|
|
42
|
-
if (!exist) {
|
|
43
|
-
mergedPlugins.push(plugin);
|
|
44
|
-
}
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
const strIndex = mergedPlugins.findIndex(
|
|
48
|
-
(item) => typeof item === "string" && item === plugin.name
|
|
49
|
-
);
|
|
50
|
-
if (strIndex !== -1) {
|
|
51
|
-
mergedPlugins[strIndex] = plugin;
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
let isMerged = false;
|
|
55
|
-
mergedPlugins = mergedPlugins.map((item) => {
|
|
56
|
-
if (typeof item === "object" && item.name === plugin.name) {
|
|
57
|
-
isMerged = true;
|
|
58
|
-
return deepmerge(item, plugin);
|
|
59
|
-
}
|
|
60
|
-
return item;
|
|
1
|
+
import { fileURLToPath as __webpack_fileURLToPath__ } from "url";
|
|
2
|
+
import { dirname as __webpack_dirname__ } from "path";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_node_path__ from "node:path";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__rsbuild_plugin_react__ from "@rsbuild/plugin-react";
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE_deepmerge__ from "deepmerge";
|
|
6
|
+
var src_dirname = __webpack_dirname__(__webpack_fileURLToPath__(import.meta.url));
|
|
7
|
+
const SVG_REGEX = /\.svg$/;
|
|
8
|
+
const getSvgoDefaultConfig = ()=>({
|
|
9
|
+
plugins: [
|
|
10
|
+
{
|
|
11
|
+
name: 'preset-default',
|
|
12
|
+
params: {
|
|
13
|
+
overrides: {
|
|
14
|
+
// viewBox is required to resize SVGs with CSS.
|
|
15
|
+
// @see https://github.com/svg/svgo/issues/1128
|
|
16
|
+
removeViewBox: false
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
'prefixIds'
|
|
21
|
+
]
|
|
61
22
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
svgoConfig: getSvgoDefaultConfig()
|
|
88
|
-
},
|
|
89
|
-
options.svgrOptions || {}
|
|
90
|
-
);
|
|
91
|
-
svgrOptions.svgoConfig = dedupeSvgoPlugins(svgrOptions.svgoConfig);
|
|
92
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_URL).type("asset/resource").resourceQuery(/(__inline=false|url)/).set("generator", generatorOptions);
|
|
93
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_INLINE).type("asset/inline").resourceQuery(/inline/);
|
|
94
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_REACT).type("javascript/auto").resourceQuery(options.query || /react/).use(CHAIN_ID.USE.SVGR).loader(path2.resolve(__dirname, "./loader.cjs")).options({
|
|
95
|
-
...svgrOptions,
|
|
96
|
-
exportType: "default"
|
|
97
|
-
}).end();
|
|
98
|
-
const { mixedImport = false } = options;
|
|
99
|
-
if (mixedImport || svgrOptions.exportType) {
|
|
100
|
-
const { exportType = mixedImport ? "named" : void 0 } = svgrOptions;
|
|
101
|
-
const issuerInclude = [
|
|
102
|
-
/\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/,
|
|
103
|
-
/\.mdx$/
|
|
104
|
-
];
|
|
105
|
-
const issuer = options.excludeImporter ? { and: [issuerInclude, { not: options.excludeImporter }] } : issuerInclude;
|
|
106
|
-
const svgRule = rule.oneOf(CHAIN_ID.ONE_OF.SVG);
|
|
107
|
-
if (options.exclude) {
|
|
108
|
-
svgRule.exclude.add(options.exclude);
|
|
109
|
-
}
|
|
110
|
-
svgRule.type("javascript/auto").set("issuer", issuer).use(CHAIN_ID.USE.SVGR).loader(path2.resolve(__dirname, "./loader.cjs")).options({
|
|
111
|
-
...svgrOptions,
|
|
112
|
-
exportType
|
|
113
|
-
}).end();
|
|
114
|
-
if (mixedImport && exportType === "named") {
|
|
115
|
-
svgRule.use(CHAIN_ID.USE.URL).loader(path2.join(__dirname, "../compiled", "url-loader/index.js")).options({
|
|
116
|
-
limit: maxSize,
|
|
117
|
-
name: generatorOptions?.filename
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
rule.oneOf(CHAIN_ID.ONE_OF.SVG_ASSET).type("asset").parser({
|
|
122
|
-
// Inline SVG if size < maxSize
|
|
123
|
-
dataUrlCondition: {
|
|
124
|
-
maxSize
|
|
125
|
-
}
|
|
126
|
-
}).set("generator", generatorOptions);
|
|
127
|
-
const jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS);
|
|
128
|
-
[CHAIN_ID.USE.SWC, CHAIN_ID.USE.BABEL].some((jsUseId) => {
|
|
129
|
-
const use = jsRule.uses.get(jsUseId);
|
|
130
|
-
if (!use) {
|
|
131
|
-
return false;
|
|
23
|
+
/**
|
|
24
|
+
* Dedupe SVGO plugins config.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* Input:
|
|
28
|
+
* {
|
|
29
|
+
* plugins: [
|
|
30
|
+
* { name: 'preset-default', params: { foo: true }],
|
|
31
|
+
* { name: 'preset-default', params: { bar: true }],
|
|
32
|
+
* ]
|
|
33
|
+
* }
|
|
34
|
+
* Output:
|
|
35
|
+
* {
|
|
36
|
+
* plugins: [
|
|
37
|
+
* { name: 'preset-default', params: { foo: true, bar: true }],
|
|
38
|
+
* ]
|
|
39
|
+
* }
|
|
40
|
+
*/ const dedupeSvgoPlugins = (config)=>{
|
|
41
|
+
if (!config.plugins) return config;
|
|
42
|
+
let mergedPlugins = [];
|
|
43
|
+
for (const plugin of config.plugins){
|
|
44
|
+
if ('string' == typeof plugin) {
|
|
45
|
+
const exist = mergedPlugins.find((item)=>item === plugin || 'object' == typeof item && item.name === plugin);
|
|
46
|
+
if (!exist) mergedPlugins.push(plugin);
|
|
47
|
+
continue;
|
|
132
48
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
]) {
|
|
137
|
-
if (!rule.oneOfs.has(oneOfId)) {
|
|
49
|
+
const strIndex = mergedPlugins.findIndex((item)=>'string' == typeof item && item === plugin.name);
|
|
50
|
+
if (-1 !== strIndex) {
|
|
51
|
+
mergedPlugins[strIndex] = plugin;
|
|
138
52
|
continue;
|
|
139
|
-
}
|
|
140
|
-
rule.oneOf(oneOfId).use(jsUseId).before(CHAIN_ID.USE.SVGR).loader(use.get("loader")).options(use.get("options"));
|
|
141
53
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
54
|
+
let isMerged = false;
|
|
55
|
+
mergedPlugins = mergedPlugins.map((item)=>{
|
|
56
|
+
if ('object' == typeof item && item.name === plugin.name) {
|
|
57
|
+
isMerged = true;
|
|
58
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_deepmerge__["default"])(item, plugin);
|
|
59
|
+
}
|
|
60
|
+
return item;
|
|
61
|
+
});
|
|
62
|
+
if (!isMerged) mergedPlugins.push(plugin);
|
|
63
|
+
}
|
|
64
|
+
config.plugins = mergedPlugins;
|
|
65
|
+
return config;
|
|
66
|
+
};
|
|
67
|
+
const PLUGIN_SVGR_NAME = 'rsbuild:svgr';
|
|
68
|
+
const pluginSvgr = function() {
|
|
69
|
+
let options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
70
|
+
return {
|
|
71
|
+
name: PLUGIN_SVGR_NAME,
|
|
72
|
+
pre: [
|
|
73
|
+
__WEBPACK_EXTERNAL_MODULE__rsbuild_plugin_react__.PLUGIN_REACT_NAME
|
|
74
|
+
],
|
|
75
|
+
setup (api) {
|
|
76
|
+
api.modifyBundlerChain(async (chain, param)=>{
|
|
77
|
+
let { CHAIN_ID, environment } = param;
|
|
78
|
+
const { config } = environment;
|
|
79
|
+
const { dataUriLimit } = config.output;
|
|
80
|
+
const maxSize = 'number' == typeof dataUriLimit ? dataUriLimit : dataUriLimit.svg;
|
|
81
|
+
let generatorOptions = {};
|
|
82
|
+
if (chain.module.rules.has(CHAIN_ID.RULE.SVG)) {
|
|
83
|
+
generatorOptions = chain.module.rules.get(CHAIN_ID.RULE.SVG).oneOfs.get(CHAIN_ID.ONE_OF.SVG_URL).get('generator');
|
|
84
|
+
// delete Rsbuild builtin SVG rules
|
|
85
|
+
chain.module.rules.delete(CHAIN_ID.RULE.SVG);
|
|
86
|
+
}
|
|
87
|
+
const rule = chain.module.rule(CHAIN_ID.RULE.SVG).test(SVG_REGEX);
|
|
88
|
+
const svgrOptions = (0, __WEBPACK_EXTERNAL_MODULE_deepmerge__["default"])({
|
|
89
|
+
svgo: true,
|
|
90
|
+
svgoConfig: getSvgoDefaultConfig()
|
|
91
|
+
}, options.svgrOptions || {});
|
|
92
|
+
svgrOptions.svgoConfig = dedupeSvgoPlugins(svgrOptions.svgoConfig);
|
|
93
|
+
// force to url: "foo.svg?url",
|
|
94
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_URL).type('asset/resource').resourceQuery(/(__inline=false|url)/).set('generator', generatorOptions);
|
|
95
|
+
// force to inline: "foo.svg?inline"
|
|
96
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_INLINE).type('asset/inline').resourceQuery(/inline/);
|
|
97
|
+
// force to react component: "foo.svg?react"
|
|
98
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_REACT).type('javascript/auto').resourceQuery(options.query || /react/).use(CHAIN_ID.USE.SVGR).loader(__WEBPACK_EXTERNAL_MODULE_node_path__["default"].resolve(src_dirname, './loader.cjs')).options({
|
|
99
|
+
...svgrOptions,
|
|
100
|
+
exportType: 'default'
|
|
101
|
+
}).end();
|
|
102
|
+
// SVG in JS files
|
|
103
|
+
const { mixedImport = false } = options;
|
|
104
|
+
if (mixedImport || svgrOptions.exportType) {
|
|
105
|
+
const { exportType = mixedImport ? 'named' : void 0 } = svgrOptions;
|
|
106
|
+
const issuerInclude = [
|
|
107
|
+
/\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/,
|
|
108
|
+
/\.mdx$/
|
|
109
|
+
];
|
|
110
|
+
const issuer = options.excludeImporter ? {
|
|
111
|
+
and: [
|
|
112
|
+
issuerInclude,
|
|
113
|
+
{
|
|
114
|
+
not: options.excludeImporter
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
} : issuerInclude;
|
|
118
|
+
const svgRule = rule.oneOf(CHAIN_ID.ONE_OF.SVG);
|
|
119
|
+
if (options.exclude) svgRule.exclude.add(options.exclude);
|
|
120
|
+
svgRule.type('javascript/auto') // The issuer option ensures that SVGR will only apply if the SVG is imported from a JS file.
|
|
121
|
+
.set('issuer', issuer).use(CHAIN_ID.USE.SVGR).loader(__WEBPACK_EXTERNAL_MODULE_node_path__["default"].resolve(src_dirname, './loader.cjs')).options({
|
|
122
|
+
...svgrOptions,
|
|
123
|
+
exportType
|
|
124
|
+
}).end();
|
|
125
|
+
/**
|
|
126
|
+
* For mixed import.
|
|
127
|
+
* @example import logoUrl, { ReactComponent } from './logo.svg';`
|
|
128
|
+
*/ if (mixedImport && 'named' === exportType) svgRule.use(CHAIN_ID.USE.URL).loader(__WEBPACK_EXTERNAL_MODULE_node_path__["default"].join(src_dirname, '../compiled', 'url-loader/index.js')).options({
|
|
129
|
+
limit: maxSize,
|
|
130
|
+
name: null == generatorOptions ? void 0 : generatorOptions.filename
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
// SVG as assets
|
|
134
|
+
rule.oneOf(CHAIN_ID.ONE_OF.SVG_ASSET).type('asset').parser({
|
|
135
|
+
// Inline SVG if size < maxSize
|
|
136
|
+
dataUrlCondition: {
|
|
137
|
+
maxSize
|
|
138
|
+
}
|
|
139
|
+
}).set('generator', generatorOptions);
|
|
140
|
+
// apply current JS transform rule to SVGR rules
|
|
141
|
+
const jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS);
|
|
142
|
+
[
|
|
143
|
+
CHAIN_ID.USE.SWC,
|
|
144
|
+
CHAIN_ID.USE.BABEL
|
|
145
|
+
].some((jsUseId)=>{
|
|
146
|
+
const use = jsRule.uses.get(jsUseId);
|
|
147
|
+
if (!use) return false;
|
|
148
|
+
for (const oneOfId of [
|
|
149
|
+
CHAIN_ID.ONE_OF.SVG,
|
|
150
|
+
CHAIN_ID.ONE_OF.SVG_REACT
|
|
151
|
+
]){
|
|
152
|
+
if (!!rule.oneOfs.has(oneOfId)) rule.oneOf(oneOfId).use(jsUseId).before(CHAIN_ID.USE.SVGR).loader(use.get('loader')).options(use.get('options'));
|
|
153
|
+
}
|
|
154
|
+
return true;
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
};
|
|
150
159
|
};
|
|
160
|
+
export { PLUGIN_SVGR_NAME, pluginSvgr };
|
package/dist/loader.cjs
CHANGED
|
@@ -1,80 +1,108 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
2
|
+
// The require scope
|
|
3
|
+
var __webpack_require__ = {};
|
|
4
|
+
/************************************************************************/ // webpack/runtime/compat_get_default_export
|
|
5
|
+
(()=>{
|
|
6
|
+
// getDefaultExport function for compatibility with non-harmony modules
|
|
7
|
+
__webpack_require__.n = function(module) {
|
|
8
|
+
var getter = module && module.__esModule ? function() {
|
|
9
|
+
return module['default'];
|
|
10
|
+
} : function() {
|
|
11
|
+
return module;
|
|
12
|
+
};
|
|
13
|
+
__webpack_require__.d(getter, {
|
|
14
|
+
a: getter
|
|
15
|
+
});
|
|
16
|
+
return getter;
|
|
17
|
+
};
|
|
18
|
+
})();
|
|
19
|
+
// webpack/runtime/define_property_getters
|
|
20
|
+
(()=>{
|
|
21
|
+
__webpack_require__.d = function(exports1, definition) {
|
|
22
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: definition[key]
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
// webpack/runtime/has_own_property
|
|
29
|
+
(()=>{
|
|
30
|
+
__webpack_require__.o = function(obj, prop) {
|
|
31
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
32
|
+
};
|
|
33
|
+
})();
|
|
34
|
+
// webpack/runtime/make_namespace_object
|
|
35
|
+
(()=>{
|
|
36
|
+
// define __esModule on exports
|
|
37
|
+
__webpack_require__.r = function(exports1) {
|
|
38
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
39
|
+
value: 'Module'
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
42
|
+
value: true
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
})();
|
|
46
|
+
/************************************************************************/ var __webpack_exports__ = {};
|
|
47
|
+
// ESM COMPAT FLAG
|
|
48
|
+
__webpack_require__.r(__webpack_exports__);
|
|
49
|
+
// EXPORTS
|
|
50
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
51
|
+
default: ()=>/* binding */ loader
|
|
34
52
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
)
|
|
53
|
+
const external_node_path_namespaceObject = require("node:path");
|
|
54
|
+
const external_node_util_namespaceObject = require("node:util");
|
|
55
|
+
const core_namespaceObject = require("@svgr/core");
|
|
56
|
+
const plugin_jsx_namespaceObject = require("@svgr/plugin-jsx");
|
|
57
|
+
var plugin_jsx_default = /*#__PURE__*/ __webpack_require__.n(plugin_jsx_namespaceObject);
|
|
58
|
+
const plugin_svgo_namespaceObject = require("@svgr/plugin-svgo");
|
|
59
|
+
var plugin_svgo_default = /*#__PURE__*/ __webpack_require__.n(plugin_svgo_namespaceObject);
|
|
60
|
+
/**
|
|
61
|
+
* Copyright (c) 2017, Smooth Code
|
|
62
|
+
*
|
|
63
|
+
* This source code is licensed under the MIT license found in the
|
|
64
|
+
* LICENSE file in the root directory of this source tree.
|
|
65
|
+
* modified from https://github.com/gregberge/svgr/blob/7595d378b73d4826a4cead165b3f32386b07315b/packages/webpack/src/index.ts
|
|
66
|
+
*/ const transformSvg = (0, external_node_util_namespaceObject.callbackify)(async (contents, config, state)=>(0, core_namespaceObject.transform)(contents, config, state));
|
|
44
67
|
function svgrLoader(contents) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this.fs.readFile(this.resourcePath, (err, result)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
transformSvg(String(result), options, state, (err2, content) => {
|
|
71
|
-
if (err2) {
|
|
72
|
-
callback(err2);
|
|
73
|
-
return;
|
|
68
|
+
var _this;
|
|
69
|
+
null === (_this = this) || void 0 === _this || _this.cacheable();
|
|
70
|
+
const callback = this.async();
|
|
71
|
+
const options = this.getOptions();
|
|
72
|
+
const previousExport = (()=>{
|
|
73
|
+
if (contents.startsWith('export ')) return contents;
|
|
74
|
+
const exportMatches = contents.match(/^module.exports\s*=\s*(.*)/);
|
|
75
|
+
return exportMatches ? `export default ${exportMatches[1]}` : null;
|
|
76
|
+
})();
|
|
77
|
+
const state = {
|
|
78
|
+
caller: {
|
|
79
|
+
name: '@rsbuild/plugin-svgr',
|
|
80
|
+
previousExport,
|
|
81
|
+
defaultPlugins: [
|
|
82
|
+
plugin_svgo_default(),
|
|
83
|
+
plugin_jsx_default()
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
filePath: (0, external_node_path_namespaceObject.normalize)(this.resourcePath)
|
|
87
|
+
};
|
|
88
|
+
if (previousExport) this.fs.readFile(this.resourcePath, (err, result)=>{
|
|
89
|
+
if (err) {
|
|
90
|
+
callback(err);
|
|
91
|
+
return;
|
|
74
92
|
}
|
|
75
|
-
|
|
76
|
-
|
|
93
|
+
transformSvg(String(result), options, state, (err, content)=>{
|
|
94
|
+
if (err) {
|
|
95
|
+
callback(err);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
callback(null, content);
|
|
99
|
+
});
|
|
77
100
|
});
|
|
78
|
-
|
|
101
|
+
else transformSvg(contents, options, state, callback);
|
|
79
102
|
}
|
|
80
|
-
|
|
103
|
+
/* harmony default export */ const loader = svgrLoader;
|
|
104
|
+
var __webpack_export_target__ = exports;
|
|
105
|
+
for(var i in __webpack_exports__)__webpack_export_target__[i] = __webpack_exports__[i];
|
|
106
|
+
if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
|
|
107
|
+
value: true
|
|
108
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsbuild/plugin-svgr",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "svgr plugin for Rsbuild",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -11,17 +11,16 @@
|
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"types": "./dist
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
15
|
"import": "./dist/index.js",
|
|
16
16
|
"require": "./dist/index.cjs"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"main": "./dist/index.cjs",
|
|
20
|
-
"types": "./dist
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
21
|
"files": [
|
|
22
22
|
"dist",
|
|
23
|
-
"compiled"
|
|
24
|
-
"dist-types"
|
|
23
|
+
"compiled"
|
|
25
24
|
],
|
|
26
25
|
"dependencies": {
|
|
27
26
|
"@svgr/core": "8.1.0",
|
|
@@ -29,16 +28,16 @@
|
|
|
29
28
|
"@svgr/plugin-svgo": "8.1.0",
|
|
30
29
|
"deepmerge": "^4.3.1",
|
|
31
30
|
"loader-utils": "^2.0.4",
|
|
32
|
-
"@rsbuild/plugin-react": "1.0.
|
|
31
|
+
"@rsbuild/plugin-react": "1.0.4"
|
|
33
32
|
},
|
|
34
33
|
"devDependencies": {
|
|
35
34
|
"@types/node": "18.x",
|
|
36
35
|
"file-loader": "6.2.0",
|
|
37
36
|
"prebundle": "1.2.2",
|
|
38
37
|
"svgo": "^3.3.2",
|
|
39
|
-
"typescript": "^5.
|
|
38
|
+
"typescript": "^5.6.3",
|
|
40
39
|
"url-loader": "4.1.1",
|
|
41
|
-
"@rsbuild/core": "1.0.
|
|
40
|
+
"@rsbuild/core": "1.0.14",
|
|
42
41
|
"@scripts/test-helper": "1.0.1"
|
|
43
42
|
},
|
|
44
43
|
"peerDependencies": {
|
|
@@ -50,8 +49,8 @@
|
|
|
50
49
|
"registry": "https://registry.npmjs.org/"
|
|
51
50
|
},
|
|
52
51
|
"scripts": {
|
|
53
|
-
"build": "
|
|
54
|
-
"dev": "
|
|
52
|
+
"build": "rslib build",
|
|
53
|
+
"dev": "rslib build --watch",
|
|
55
54
|
"prebundle": "prebundle"
|
|
56
55
|
}
|
|
57
56
|
}
|
package/dist-types/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"//":"This file is for making TypeScript work with moduleResolution node16+.","version":"1.0.0"}
|
|
File without changes
|
|
File without changes
|