@rsbuild/plugin-svelte 1.0.5 → 1.0.7-alpha.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.cjs +45 -89
- package/dist/index.js +14 -32
- package/package.json +7 -7
package/dist/index.cjs
CHANGED
|
@@ -1,70 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
let __rslib_import_meta_url__ = 'undefined' == typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
|
|
3
3
|
var __webpack_require__ = {};
|
|
4
|
-
|
|
5
|
-
(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return module['default'];
|
|
10
|
-
} : function() {
|
|
11
|
-
return module;
|
|
12
|
-
};
|
|
13
|
-
__webpack_require__.d(getter, {
|
|
14
|
-
a: getter
|
|
15
|
-
});
|
|
16
|
-
return getter;
|
|
4
|
+
__webpack_require__.n = function(module) {
|
|
5
|
+
var getter = module && module.__esModule ? function() {
|
|
6
|
+
return module.default;
|
|
7
|
+
} : function() {
|
|
8
|
+
return module;
|
|
17
9
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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_SVELTE_NAME: ()=>/* binding */ PLUGIN_SVELTE_NAME,
|
|
52
|
-
pluginSvelte: ()=>/* binding */ pluginSvelte
|
|
10
|
+
return __webpack_require__.d(getter, {
|
|
11
|
+
a: getter
|
|
12
|
+
}), getter;
|
|
13
|
+
}, __webpack_require__.d = function(exports1, definition) {
|
|
14
|
+
for(var key in definition)__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key) && Object.defineProperty(exports1, key, {
|
|
15
|
+
enumerable: !0,
|
|
16
|
+
get: definition[key]
|
|
17
|
+
});
|
|
18
|
+
}, __webpack_require__.o = function(obj, prop) {
|
|
19
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
20
|
+
}, __webpack_require__.r = function(exports1) {
|
|
21
|
+
'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
22
|
+
value: 'Module'
|
|
23
|
+
}), Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: !0
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
var __webpack_exports__ = {};
|
|
28
|
+
__webpack_require__.r(__webpack_exports__), __webpack_require__.d(__webpack_exports__, {
|
|
29
|
+
pluginSvelte: ()=>pluginSvelte,
|
|
30
|
+
PLUGIN_SVELTE_NAME: ()=>PLUGIN_SVELTE_NAME
|
|
53
31
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const core_namespaceObject = require("@rsbuild/core");
|
|
58
|
-
const external_svelte_preprocess_namespaceObject = require("svelte-preprocess");
|
|
59
|
-
const PLUGIN_SVELTE_NAME = 'rsbuild:svelte';
|
|
60
|
-
const isSvelte5 = async (sveltePath)=>{
|
|
32
|
+
let external_node_fs_namespaceObject = require("node:fs"), external_node_module_namespaceObject = require("node:module"), external_node_path_namespaceObject = require("node:path");
|
|
33
|
+
var external_node_path_default = __webpack_require__.n(external_node_path_namespaceObject);
|
|
34
|
+
let core_namespaceObject = require("@rsbuild/core"), 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)=>{
|
|
61
35
|
try {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const pkgJson = JSON.parse(pkgRaw);
|
|
65
|
-
return pkgJson.version.startsWith('5.');
|
|
36
|
+
let pkgPath = external_node_path_default().join(sveltePath, 'package.json'), pkgRaw = await external_node_fs_namespaceObject.promises.readFile(pkgPath, 'utf-8');
|
|
37
|
+
return JSON.parse(pkgRaw).version.startsWith('5.');
|
|
66
38
|
} catch (err) {
|
|
67
|
-
return
|
|
39
|
+
return !1;
|
|
68
40
|
}
|
|
69
41
|
};
|
|
70
42
|
function pluginSvelte(options = {}) {
|
|
@@ -73,31 +45,20 @@ function pluginSvelte(options = {}) {
|
|
|
73
45
|
setup (api) {
|
|
74
46
|
let sveltePath = '';
|
|
75
47
|
try {
|
|
76
|
-
|
|
77
|
-
sveltePath = external_node_path_default().dirname(require.resolve('svelte/package.json', {
|
|
48
|
+
sveltePath = external_node_path_default().dirname(src_require.resolve('svelte/package.json', {
|
|
78
49
|
paths: [
|
|
79
50
|
api.context.rootPath
|
|
80
51
|
]
|
|
81
52
|
}));
|
|
82
53
|
} catch (err) {
|
|
83
|
-
core_namespaceObject.logger.error('Cannot resolve `svelte` package under the project directory, did you forget to install it?')
|
|
84
|
-
throw new Error('Cannot resolve `svelte` package', {
|
|
54
|
+
throw core_namespaceObject.logger.error('Cannot resolve `svelte` package under the project directory, did you forget to install it?'), Error('[rsbuild:svelte] Failed to resolve `svelte` package', {
|
|
85
55
|
cause: err
|
|
86
56
|
});
|
|
87
57
|
}
|
|
88
58
|
api.modifyBundlerChain(async (chain, { CHAIN_ID, environment, isDev, isProd })=>{
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
chain.resolve.extensions.add('.svelte');
|
|
93
|
-
chain.resolve.mainFields.add('svelte').add('...');
|
|
94
|
-
chain.resolve.conditionNames.add('svelte').add('...');
|
|
95
|
-
const loaderPath = require.resolve('svelte-loader');
|
|
96
|
-
// We need to set an alias from `svelte-loader` to its realpath.
|
|
97
|
-
// Because with `emitCss` option on, the loader generates css
|
|
98
|
-
// imports with inline loader reference like `!svelte-loader...`,
|
|
99
|
-
// which would cause the bundler failed to resolve the loader.
|
|
100
|
-
// See https://github.com/sveltejs/svelte-loader/blob/344f00744b06a98ff5ee7e7a04d5e04ac496988c/index.js#L128
|
|
59
|
+
let svelte5 = await isSvelte5(sveltePath), environmentConfig = environment.config;
|
|
60
|
+
!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('...');
|
|
61
|
+
let loaderPath = src_require.resolve('svelte-loader');
|
|
101
62
|
chain.merge({
|
|
102
63
|
resolveLoader: {
|
|
103
64
|
alias: {
|
|
@@ -105,11 +66,8 @@ function pluginSvelte(options = {}) {
|
|
|
105
66
|
}
|
|
106
67
|
}
|
|
107
68
|
});
|
|
108
|
-
|
|
109
|
-
const svelteLoaderOptions = {
|
|
69
|
+
let userLoaderOptions = options.svelteLoaderOptions ?? {}, svelteLoaderOptions = {
|
|
110
70
|
preprocess: (0, external_svelte_preprocess_namespaceObject.sveltePreprocess)(options.preprocessOptions),
|
|
111
|
-
// NOTE emitCss: true is currently not supported with HMR
|
|
112
|
-
// See https://github.com/web-infra-dev/rsbuild/issues/2744
|
|
113
71
|
emitCss: isProd && !environmentConfig.output.injectStyles,
|
|
114
72
|
hotReload: isDev && environmentConfig.dev.hmr,
|
|
115
73
|
...userLoaderOptions,
|
|
@@ -119,19 +77,17 @@ function pluginSvelte(options = {}) {
|
|
|
119
77
|
}
|
|
120
78
|
};
|
|
121
79
|
chain.module.rule(CHAIN_ID.RULE.SVELTE).test(/\.svelte$/).use(CHAIN_ID.USE.SVELTE).loader(loaderPath).options(svelteLoaderOptions);
|
|
122
|
-
|
|
80
|
+
let jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS);
|
|
123
81
|
if (svelte5 && jsRule) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
jsRule.exclude.add(regexp);
|
|
127
|
-
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'));
|
|
82
|
+
let swcUse = jsRule.uses.get(CHAIN_ID.USE.SWC), regexp = /\.(?:svelte\.js|svelte\.ts)$/;
|
|
83
|
+
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'));
|
|
128
84
|
}
|
|
129
85
|
});
|
|
130
86
|
}
|
|
131
87
|
};
|
|
132
88
|
}
|
|
133
89
|
var __webpack_export_target__ = exports;
|
|
134
|
-
for(var
|
|
135
|
-
|
|
136
|
-
value:
|
|
90
|
+
for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
91
|
+
__webpack_exports__.__esModule && Object.defineProperty(__webpack_export_target__, '__esModule', {
|
|
92
|
+
value: !0
|
|
137
93
|
});
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import * as __WEBPACK_EXTERNAL_MODULE_node_fs__ from "node:fs";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_node_module__ from "node:module";
|
|
2
3
|
import * as __WEBPACK_EXTERNAL_MODULE_node_path__ from "node:path";
|
|
3
4
|
import * as __WEBPACK_EXTERNAL_MODULE__rsbuild_core__ from "@rsbuild/core";
|
|
4
5
|
import * as __WEBPACK_EXTERNAL_MODULE_svelte_preprocess__ from "svelte-preprocess";
|
|
5
|
-
|
|
6
|
-
const isSvelte5 = async (sveltePath)=>{
|
|
6
|
+
let src_require = (0, __WEBPACK_EXTERNAL_MODULE_node_module__.createRequire)(import.meta.url), PLUGIN_SVELTE_NAME = 'rsbuild:svelte', isSvelte5 = async (sveltePath)=>{
|
|
7
7
|
try {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const pkgJson = JSON.parse(pkgRaw);
|
|
11
|
-
return pkgJson.version.startsWith('5.');
|
|
8
|
+
let pkgPath = __WEBPACK_EXTERNAL_MODULE_node_path__.default.join(sveltePath, 'package.json'), pkgRaw = await __WEBPACK_EXTERNAL_MODULE_node_fs__.promises.readFile(pkgPath, 'utf-8');
|
|
9
|
+
return JSON.parse(pkgRaw).version.startsWith('5.');
|
|
12
10
|
} catch (err) {
|
|
13
|
-
return
|
|
11
|
+
return !1;
|
|
14
12
|
}
|
|
15
13
|
};
|
|
16
14
|
function pluginSvelte(options = {}) {
|
|
@@ -19,31 +17,20 @@ function pluginSvelte(options = {}) {
|
|
|
19
17
|
setup (api) {
|
|
20
18
|
let sveltePath = '';
|
|
21
19
|
try {
|
|
22
|
-
|
|
23
|
-
sveltePath = __WEBPACK_EXTERNAL_MODULE_node_path__["default"].dirname(require.resolve('svelte/package.json', {
|
|
20
|
+
sveltePath = __WEBPACK_EXTERNAL_MODULE_node_path__.default.dirname(src_require.resolve('svelte/package.json', {
|
|
24
21
|
paths: [
|
|
25
22
|
api.context.rootPath
|
|
26
23
|
]
|
|
27
24
|
}));
|
|
28
25
|
} catch (err) {
|
|
29
|
-
__WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error('Cannot resolve `svelte` package under the project directory, did you forget to install it?')
|
|
30
|
-
throw new Error('Cannot resolve `svelte` package', {
|
|
26
|
+
throw __WEBPACK_EXTERNAL_MODULE__rsbuild_core__.logger.error('Cannot resolve `svelte` package under the project directory, did you forget to install it?'), Error('[rsbuild:svelte] Failed to resolve `svelte` package', {
|
|
31
27
|
cause: err
|
|
32
28
|
});
|
|
33
29
|
}
|
|
34
30
|
api.modifyBundlerChain(async (chain, { CHAIN_ID, environment, isDev, isProd })=>{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
chain.resolve.extensions.add('.svelte');
|
|
39
|
-
chain.resolve.mainFields.add('svelte').add('...');
|
|
40
|
-
chain.resolve.conditionNames.add('svelte').add('...');
|
|
41
|
-
const loaderPath = require.resolve('svelte-loader');
|
|
42
|
-
// We need to set an alias from `svelte-loader` to its realpath.
|
|
43
|
-
// Because with `emitCss` option on, the loader generates css
|
|
44
|
-
// imports with inline loader reference like `!svelte-loader...`,
|
|
45
|
-
// which would cause the bundler failed to resolve the loader.
|
|
46
|
-
// See https://github.com/sveltejs/svelte-loader/blob/344f00744b06a98ff5ee7e7a04d5e04ac496988c/index.js#L128
|
|
31
|
+
let svelte5 = await isSvelte5(sveltePath), environmentConfig = environment.config;
|
|
32
|
+
!svelte5 && chain.resolve.alias.set('svelte', __WEBPACK_EXTERNAL_MODULE_node_path__.default.join(sveltePath, 'src/runtime')), chain.resolve.extensions.add('.svelte'), chain.resolve.mainFields.add('svelte').add('...'), chain.resolve.conditionNames.add('svelte').add('...');
|
|
33
|
+
let loaderPath = src_require.resolve('svelte-loader');
|
|
47
34
|
chain.merge({
|
|
48
35
|
resolveLoader: {
|
|
49
36
|
alias: {
|
|
@@ -51,11 +38,8 @@ function pluginSvelte(options = {}) {
|
|
|
51
38
|
}
|
|
52
39
|
}
|
|
53
40
|
});
|
|
54
|
-
|
|
55
|
-
const svelteLoaderOptions = {
|
|
41
|
+
let userLoaderOptions = options.svelteLoaderOptions ?? {}, svelteLoaderOptions = {
|
|
56
42
|
preprocess: (0, __WEBPACK_EXTERNAL_MODULE_svelte_preprocess__.sveltePreprocess)(options.preprocessOptions),
|
|
57
|
-
// NOTE emitCss: true is currently not supported with HMR
|
|
58
|
-
// See https://github.com/web-infra-dev/rsbuild/issues/2744
|
|
59
43
|
emitCss: isProd && !environmentConfig.output.injectStyles,
|
|
60
44
|
hotReload: isDev && environmentConfig.dev.hmr,
|
|
61
45
|
...userLoaderOptions,
|
|
@@ -65,12 +49,10 @@ function pluginSvelte(options = {}) {
|
|
|
65
49
|
}
|
|
66
50
|
};
|
|
67
51
|
chain.module.rule(CHAIN_ID.RULE.SVELTE).test(/\.svelte$/).use(CHAIN_ID.USE.SVELTE).loader(loaderPath).options(svelteLoaderOptions);
|
|
68
|
-
|
|
52
|
+
let jsRule = chain.module.rules.get(CHAIN_ID.RULE.JS);
|
|
69
53
|
if (svelte5 && jsRule) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
jsRule.exclude.add(regexp);
|
|
73
|
-
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
|
+
let swcUse = jsRule.uses.get(CHAIN_ID.USE.SWC), regexp = /\.(?:svelte\.js|svelte\.ts)$/;
|
|
55
|
+
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'));
|
|
74
56
|
}
|
|
75
57
|
});
|
|
76
58
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsbuild/plugin-svelte",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7-alpha.0",
|
|
4
4
|
"description": "Svelte plugin for Rsbuild",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"svelte-preprocess": "^6.0.3"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@rslib/core": "0.
|
|
30
|
-
"@types/node": "^22.
|
|
31
|
-
"svelte": "^5.
|
|
32
|
-
"typescript": "^5.
|
|
33
|
-
"@
|
|
34
|
-
"@
|
|
29
|
+
"@rslib/core": "0.1.4",
|
|
30
|
+
"@types/node": "^22.10.2",
|
|
31
|
+
"svelte": "^5.14.0",
|
|
32
|
+
"typescript": "^5.7.2",
|
|
33
|
+
"@scripts/test-helper": "1.0.1",
|
|
34
|
+
"@rsbuild/core": "1.1.10"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@rsbuild/core": "1.x"
|