@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 CHANGED
@@ -1,40 +1,35 @@
1
- import { promises } from "node:fs";
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', isSvelte5 = async (sveltePath)=>{
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
- let sveltePath = '';
18
- try {
19
- sveltePath = node_path.dirname(src_require.resolve('svelte/package.json', {
20
- paths: [
21
- api.context.rootPath
22
- ]
23
- }));
24
- } catch (err) {
25
- 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', {
26
- cause: err
27
- });
28
- }
29
- api.modifyEnvironmentConfig((config, { mergeEnvironmentConfig })=>mergeEnvironmentConfig({
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(async (chain, { CHAIN_ID, environment, isDev, isProd })=>{
36
- let svelte5 = await isSvelte5(sveltePath), environmentConfig = environment.config;
37
- svelte5 || chain.resolve.alias.set('svelte', node_path.join(sveltePath, 'src/runtime')), chain.resolve.extensions.add('.svelte'), chain.resolve.mainFields.add('svelte').add('...'), chain.resolve.conditionNames.add('svelte').add('...');
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
- }, 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$/);
50
- 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) {
51
- let regexp = /\.(?:svelte\.js|svelte\.ts)$/;
52
- 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'));
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": "1.1.2",
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
- "import": "./dist/index.js",
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.3"
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": "^1.4.0 || ^2.0.0-0"
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
- });