Skip to content

Commit f2f8503

Browse files
committed
update build options
1 parent 4522565 commit f2f8503

File tree

11 files changed

+253
-34
lines changed

11 files changed

+253
-34
lines changed

package-lock.json

Lines changed: 194 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"build:svelte": "svelte-kit sync && svelte-package -o dist/svelte && publint",
1313
"build:vanilla": "rollup -c",
1414
"preview": "vite preview",
15-
"prepublishOnly": "npm run package",
15+
"prepublishOnly": "npm run build",
1616
"test": "npm run test:integration && npm run test:unit",
1717
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
1818
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
@@ -21,14 +21,24 @@
2121
"lint": "prettier --check .",
2222
"format": "prettier --write ."
2323
},
24+
"type": "module",
25+
"module": "./dist/range-slider-pips.mjs",
26+
"main": "./dist/range-slider-pips.js",
27+
"svelte": "./dist/svelte/index.js",
28+
"types": "./dist/svelte/index.d.ts",
2429
"exports": {
2530
".": {
2631
"types": "./dist/svelte/index.d.ts",
27-
"svelte": "./dist/svelte/index.js"
32+
"svelte": "./dist/svelte/index.js",
33+
"import": "./dist/range-slider-pips.mjs",
34+
"require": "./dist/range-slider-pips.js",
35+
"style": "./dist/range-slider-pips.css"
36+
},
37+
"./dist/*.css": {
38+
"import": "./dist/range-slider-pips.css",
39+
"require": "./dist/range-slider-pips.css"
2840
}
2941
},
30-
"module": "./dist/es/range-slider-pips.mjs",
31-
"main": "./dist/umd/range-slider-pips.js",
3242
"files": [
3343
"dist",
3444
"!dist/**/*.test.*",
@@ -47,12 +57,14 @@
4757
"@sveltejs/kit": "^2.0.0",
4858
"@sveltejs/package": "^2.0.0",
4959
"@sveltejs/vite-plugin-svelte": "^3.0.0",
60+
"@types/node": "^20.11.16",
5061
"globby": "^14.0.0",
5162
"prettier": "^3.1.1",
5263
"prettier-plugin-svelte": "^3.1.2",
5364
"publint": "^0.1.9",
5465
"rollup": "^4.9.6",
5566
"rollup-plugin-css-only": "^4.5.2",
67+
"rollup-plugin-delete": "^2.0.0",
5668
"rollup-plugin-filesize": "^10.0.0",
5769
"rollup-plugin-svelte": "^7.1.6",
5870
"svelte": "^4.2.7",
@@ -63,9 +75,6 @@
6375
"vite": "^5.0.11",
6476
"vitest": "^1.2.0"
6577
},
66-
"svelte": "./dist/svelte/index.js",
67-
"types": "./dist/svelte/index.d.ts",
68-
"type": "module",
6978
"keywords": [
7079
"svelte",
7180
"component",

rollup.config.mjs

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2+
import fs from 'fs';
3+
import del from 'rollup-plugin-delete'
14
import svelte from 'rollup-plugin-svelte';
25
import commonjs from '@rollup/plugin-commonjs';
36
import resolve from '@rollup/plugin-node-resolve';
@@ -7,17 +10,27 @@ import typescript from '@rollup/plugin-typescript';
710
import css from 'rollup-plugin-css-only';
811

912
import { globbySync } from 'globby';
10-
import pkg from './package.json' with { type: 'json' };
1113

12-
const name = pkg.name
14+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf-8'));
15+
16+
// for use with exports options
17+
const packageName = pkg.name
1318
.replace(/^(@\S+\/)?(svelte-)?(\S+)/, '$3')
19+
20+
// this is the name of the component when imported
21+
// like: import { Component } from 'package' or require('package').Component
22+
// and: const myComponent = new Component();
23+
const moduleName = packageName
1424
.replace(/^\w/, (m) => m.toUpperCase())
1525
.replace(/-\w/g, (m) => m[1].toUpperCase());
1626

27+
// banner to be added to the top of each generated file
1728
const banner = `/**
1829
* ${pkg.name} ~ ${pkg.version}
1930
* ${pkg.description || ''}
20-
* © MPL-2.0 ~ ${pkg.author} ~ ${new Date().getDate()}/${new Date().getMonth() + 1}/${new Date().getFullYear()}
31+
* ${pkg.homepage ? `Project home: ${pkg.homepage}` : ''}
32+
* © ${new Date().getFullYear()} ${pkg.author} ~ ${pkg.license} License
33+
* Published: ${new Date().getDate()}/${new Date().getMonth() + 1}/${new Date().getFullYear()} @ ${new Date().getHours()}:${new Date().getMinutes()}
2134
*/`;
2235

2336
const production = !process.env.ROLLUP_WATCH;
@@ -29,19 +42,20 @@ const exports = components.map((component) => ({
2942
input: `src/lib/components/${component}.svelte`,
3043
output: [
3144
{
32-
file: pkg.module,
45+
file: pkg.exports['.'].import,
3346
format: 'es',
34-
name,
47+
name: moduleName,
3548
banner
3649
},
3750
{
38-
file: pkg.main,
51+
file: pkg.exports['.'].require,
3952
format: 'umd',
40-
name,
53+
name: moduleName,
4154
banner
4255
}
4356
],
4457
plugins: [
58+
del({ targets: 'dist/*' }),
4559
svelte({
4660
preprocess: autoPreprocess(),
4761
compilerOptions: {
@@ -50,7 +64,7 @@ const exports = components.map((component) => ({
5064
}
5165
}),
5266
typescript(),
53-
css({ output: 'range-slider-pips.css' }),
67+
css({ output: pkg.exports['.'].style.split('/').at(-1) }),
5468
resolve({
5569
browser: true,
5670
dedupe: ['svelte']

0 commit comments

Comments
 (0)