@rsbuild/plugin-svelte 1.1.2 → 2.0.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/dist/index.js +25 -31
- package/package.json +5 -6
- package/dist/index.cjs +0 -90
package/dist/index.js
CHANGED
|
@@ -1,40 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
|
-
import node_path from "node:path";
|
|
4
3
|
import { sveltePreprocess } from "svelte-preprocess";
|
|
5
|
-
let src_require = createRequire(import.meta.url), PLUGIN_SVELTE_NAME = 'rsbuild:svelte'
|
|
6
|
-
try {
|
|
7
|
-
let pkgPath = node_path.join(sveltePath, 'package.json'), pkgRaw = await promises.readFile(pkgPath, 'utf-8');
|
|
8
|
-
return JSON.parse(pkgRaw).version.startsWith('5.');
|
|
9
|
-
} catch {
|
|
10
|
-
return !1;
|
|
11
|
-
}
|
|
12
|
-
};
|
|
4
|
+
let src_require = createRequire(import.meta.url), PLUGIN_SVELTE_NAME = 'rsbuild:svelte';
|
|
13
5
|
function pluginSvelte(options = {}) {
|
|
14
6
|
return {
|
|
15
7
|
name: PLUGIN_SVELTE_NAME,
|
|
16
8
|
setup (api) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
9
|
+
((rootPath)=>{
|
|
10
|
+
let pkgPath;
|
|
11
|
+
try {
|
|
12
|
+
pkgPath = src_require.resolve('svelte/package.json', {
|
|
13
|
+
paths: [
|
|
14
|
+
rootPath
|
|
15
|
+
]
|
|
16
|
+
});
|
|
17
|
+
} catch (err) {
|
|
18
|
+
throw Error('Cannot resolve `svelte` package under the project directory, did you forget to install it?', {
|
|
19
|
+
cause: err
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
let { version } = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
23
|
+
if (!((version ? Number(version.split('.')[0]) : 0) >= 5)) throw Error(`"@rsbuild/plugin-svelte" requires svelte >= 5.0.0, but found ${version || 'unknown'}.`);
|
|
24
|
+
})(api.context.rootPath), api.modifyEnvironmentConfig((config, { mergeEnvironmentConfig })=>mergeEnvironmentConfig({
|
|
30
25
|
source: {
|
|
31
26
|
include: [
|
|
32
27
|
/node_modules[\\/]svelte[\\/]/
|
|
33
28
|
]
|
|
34
29
|
}
|
|
35
|
-
}, config)), api.modifyBundlerChain(
|
|
36
|
-
let
|
|
37
|
-
|
|
30
|
+
}, config)), api.modifyBundlerChain((chain, { CHAIN_ID, environment, isDev, isProd })=>{
|
|
31
|
+
let environmentConfig = environment.config;
|
|
32
|
+
chain.resolve.extensions.add('.svelte'), chain.resolve.mainFields.add('svelte').add('...'), chain.resolve.conditionNames.add('svelte').add('...');
|
|
38
33
|
let loaderPath = src_require.resolve('svelte-loader');
|
|
39
34
|
chain.resolveLoader.alias.set('svelte-loader', loaderPath);
|
|
40
35
|
let userLoaderOptions = options.svelteLoaderOptions ?? {}, svelteLoaderOptions = {
|
|
@@ -46,11 +41,10 @@ function pluginSvelte(options = {}) {
|
|
|
46
41
|
dev: isDev,
|
|
47
42
|
...userLoaderOptions.compilerOptions
|
|
48
43
|
}
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
44
|
+
}, jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS), swcUse = jsRule.oneOfs.get(CHAIN_ID.ONE_OF.JS_MAIN).uses.get(CHAIN_ID.USE.SWC), svelteRule = chain.module.rule(CHAIN_ID.RULE.SVELTE).test(/\.svelte$/);
|
|
45
|
+
svelteRule.use(CHAIN_ID.USE.SWC).loader(swcUse.get('loader')).options(swcUse.get('options')), svelteRule.use(CHAIN_ID.USE.SVELTE).loader(loaderPath).options(svelteLoaderOptions).end();
|
|
46
|
+
let regexp = /\.(?:svelte\.js|svelte\.ts)$/;
|
|
47
|
+
jsRule.exclude.add(regexp), chain.module.rule('svelte-js').test(regexp).use(CHAIN_ID.USE.SVELTE).loader(loaderPath).options(svelteLoaderOptions).end().use(CHAIN_ID.USE.SWC).loader(swcUse.get('loader')).options(swcUse.get('options'));
|
|
54
48
|
});
|
|
55
49
|
}
|
|
56
50
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsbuild/plugin-svelte",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Svelte plugin for Rsbuild",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
15
|
-
"
|
|
16
|
-
"require": "./dist/index.cjs"
|
|
15
|
+
"default": "./dist/index.js"
|
|
17
16
|
}
|
|
18
17
|
},
|
|
19
18
|
"types": "./dist/index.d.ts",
|
|
@@ -22,10 +21,9 @@
|
|
|
22
21
|
],
|
|
23
22
|
"dependencies": {
|
|
24
23
|
"svelte-loader": "3.2.4",
|
|
25
|
-
"svelte-preprocess": "6.0.
|
|
24
|
+
"svelte-preprocess": "6.0.5"
|
|
26
25
|
},
|
|
27
26
|
"devDependencies": {
|
|
28
|
-
"@rsbuild/core-v1": "npm:@rsbuild/core@^1.7.5",
|
|
29
27
|
"@rslib/core": "0.22.0",
|
|
30
28
|
"@types/node": "^24.12.4",
|
|
31
29
|
"svelte": "^5.55.9",
|
|
@@ -34,7 +32,8 @@
|
|
|
34
32
|
"@scripts/test-helper": "1.0.0"
|
|
35
33
|
},
|
|
36
34
|
"peerDependencies": {
|
|
37
|
-
"@rsbuild/core": "^
|
|
35
|
+
"@rsbuild/core": "^2.0.0",
|
|
36
|
+
"svelte": "^5.0.0"
|
|
38
37
|
},
|
|
39
38
|
"peerDependenciesMeta": {
|
|
40
39
|
"@rsbuild/core": {
|
package/dist/index.cjs
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const __rslib_import_meta_url__ = "u" < typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
|
|
3
|
-
var __webpack_require__ = {};
|
|
4
|
-
__webpack_require__.n = (module)=>{
|
|
5
|
-
var getter = module && module.__esModule ? ()=>module.default : ()=>module;
|
|
6
|
-
return __webpack_require__.d(getter, {
|
|
7
|
-
a: getter
|
|
8
|
-
}), getter;
|
|
9
|
-
}, __webpack_require__.d = (exports1, getters, values)=>{
|
|
10
|
-
var define = (defs, kind)=>{
|
|
11
|
-
for(var key in defs)__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key) && Object.defineProperty(exports1, key, {
|
|
12
|
-
enumerable: !0,
|
|
13
|
-
[kind]: defs[key]
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
define(getters, "get"), define(values, "value");
|
|
17
|
-
}, __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop), __webpack_require__.r = (exports1)=>{
|
|
18
|
-
"u" > typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
19
|
-
value: 'Module'
|
|
20
|
-
}), Object.defineProperty(exports1, '__esModule', {
|
|
21
|
-
value: !0
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
var __webpack_exports__ = {};
|
|
25
|
-
__webpack_require__.r(__webpack_exports__), __webpack_require__.d(__webpack_exports__, {
|
|
26
|
-
PLUGIN_SVELTE_NAME: ()=>PLUGIN_SVELTE_NAME,
|
|
27
|
-
pluginSvelte: ()=>pluginSvelte
|
|
28
|
-
});
|
|
29
|
-
const external_node_fs_namespaceObject = require("node:fs"), external_node_module_namespaceObject = require("node:module"), external_node_path_namespaceObject = require("node:path");
|
|
30
|
-
var external_node_path_default = __webpack_require__.n(external_node_path_namespaceObject);
|
|
31
|
-
const external_svelte_preprocess_namespaceObject = require("svelte-preprocess"), src_require = (0, external_node_module_namespaceObject.createRequire)(__rslib_import_meta_url__), PLUGIN_SVELTE_NAME = 'rsbuild:svelte', isSvelte5 = async (sveltePath)=>{
|
|
32
|
-
try {
|
|
33
|
-
let pkgPath = external_node_path_default().join(sveltePath, 'package.json'), pkgRaw = await external_node_fs_namespaceObject.promises.readFile(pkgPath, 'utf-8');
|
|
34
|
-
return JSON.parse(pkgRaw).version.startsWith('5.');
|
|
35
|
-
} catch {
|
|
36
|
-
return !1;
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
function pluginSvelte(options = {}) {
|
|
40
|
-
return {
|
|
41
|
-
name: PLUGIN_SVELTE_NAME,
|
|
42
|
-
setup (api) {
|
|
43
|
-
let sveltePath = '';
|
|
44
|
-
try {
|
|
45
|
-
sveltePath = external_node_path_default().dirname(src_require.resolve('svelte/package.json', {
|
|
46
|
-
paths: [
|
|
47
|
-
api.context.rootPath
|
|
48
|
-
]
|
|
49
|
-
}));
|
|
50
|
-
} catch (err) {
|
|
51
|
-
throw api.logger.error('Cannot resolve `svelte` package under the project directory, did you forget to install it?'), Error('[rsbuild:svelte] Failed to resolve `svelte` package', {
|
|
52
|
-
cause: err
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
api.modifyEnvironmentConfig((config, { mergeEnvironmentConfig })=>mergeEnvironmentConfig({
|
|
56
|
-
source: {
|
|
57
|
-
include: [
|
|
58
|
-
/node_modules[\\/]svelte[\\/]/
|
|
59
|
-
]
|
|
60
|
-
}
|
|
61
|
-
}, config)), api.modifyBundlerChain(async (chain, { CHAIN_ID, environment, isDev, isProd })=>{
|
|
62
|
-
let svelte5 = await isSvelte5(sveltePath), environmentConfig = environment.config;
|
|
63
|
-
svelte5 || chain.resolve.alias.set('svelte', external_node_path_default().join(sveltePath, 'src/runtime')), chain.resolve.extensions.add('.svelte'), chain.resolve.mainFields.add('svelte').add('...'), chain.resolve.conditionNames.add('svelte').add('...');
|
|
64
|
-
let loaderPath = src_require.resolve('svelte-loader');
|
|
65
|
-
chain.resolveLoader.alias.set('svelte-loader', loaderPath);
|
|
66
|
-
let userLoaderOptions = options.svelteLoaderOptions ?? {}, svelteLoaderOptions = {
|
|
67
|
-
preprocess: (0, external_svelte_preprocess_namespaceObject.sveltePreprocess)(options.preprocessOptions),
|
|
68
|
-
emitCss: isProd && !environmentConfig.output.injectStyles,
|
|
69
|
-
hotReload: isDev && environmentConfig.dev.hmr,
|
|
70
|
-
...userLoaderOptions,
|
|
71
|
-
compilerOptions: {
|
|
72
|
-
dev: isDev,
|
|
73
|
-
...userLoaderOptions.compilerOptions
|
|
74
|
-
}
|
|
75
|
-
}, isV1 = api.context.version.startsWith('1.'), jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS), swcUse = (isV1 ? jsRule : jsRule.oneOfs.get(CHAIN_ID.ONE_OF.JS_MAIN)).uses.get(CHAIN_ID.USE.SWC), svelteRule = chain.module.rule(CHAIN_ID.RULE.SVELTE).test(/\.svelte$/);
|
|
76
|
-
if (svelte5 && jsRule && svelteRule.use(CHAIN_ID.USE.SWC).loader(swcUse.get('loader')).options(swcUse.get('options')), svelteRule.use(CHAIN_ID.USE.SVELTE).loader(loaderPath).options(svelteLoaderOptions).end(), svelte5 && jsRule) {
|
|
77
|
-
let regexp = /\.(?:svelte\.js|svelte\.ts)$/;
|
|
78
|
-
jsRule.exclude.add(regexp), chain.module.rule('svelte-js').test(regexp).use(CHAIN_ID.USE.SVELTE).loader(loaderPath).options(svelteLoaderOptions).end().use(CHAIN_ID.USE.SWC).loader(swcUse.get('loader')).options(swcUse.get('options'));
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
for(var __rspack_i in exports.PLUGIN_SVELTE_NAME = __webpack_exports__.PLUGIN_SVELTE_NAME, exports.pluginSvelte = __webpack_exports__.pluginSvelte, __webpack_exports__)-1 === [
|
|
85
|
-
"PLUGIN_SVELTE_NAME",
|
|
86
|
-
"pluginSvelte"
|
|
87
|
-
].indexOf(__rspack_i) && (exports[__rspack_i] = __webpack_exports__[__rspack_i]);
|
|
88
|
-
Object.defineProperty(exports, '__esModule', {
|
|
89
|
-
value: !0
|
|
90
|
-
});
|