Skip to content

Commit df4a271

Browse files
committed
fix: improve vite/esm compatibility
1 parent 2c23db4 commit df4a271

File tree

2 files changed

+34
-13
lines changed

2 files changed

+34
-13
lines changed

package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,21 @@
22
"name": "@files-ui/react",
33
"version": "1.2.3",
44
"description": "UI components for file uploads with React js",
5+
"type": "module",
56
"main": "./build/index.js",
67
"module": "./build/index.es.js",
78
"types": "./build/index.d.ts",
9+
"exports": {
10+
".": {
11+
"types": "./build/index.d.ts",
12+
"import": "./build/index.es.js",
13+
"require": "./build/index.js"
14+
}
15+
},
16+
"files": [
17+
"build"
18+
],
19+
"sideEffects": false,
820
"scripts": {
921
"build": "rollup -c",
1022
"test": "jest"

rollup.config.js

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,44 @@ import resolve from "@rollup/plugin-node-resolve";
33
import peerDepsExternal from "rollup-plugin-peer-deps-external";
44
import typescript from "rollup-plugin-typescript2";
55
import sass from "rollup-plugin-sass";
6-
import packageJson from "./package.json";
7-
//import jsx from 'rollup-plugin-jsx'
8-
//import json from "rollup-plugin-json";
9-
//import { terser } from "rollup-plugin-terser";
6+
import { terser } from "rollup-plugin-terser";
7+
import { createRequire } from 'module';
8+
const require = createRequire(import.meta.url);
9+
const packageJson = require('./package.json');
10+
1011
export default {
1112
input: "./src/index.ts",
1213
output: [
1314
{
1415
file: packageJson.main,
1516
format: "cjs",
1617
sourcemap: true,
18+
exports: "named",
1719
},
1820
{
1921
file: packageJson.module,
2022
format: "esm",
2123
sourcemap: true,
24+
exports: "named",
2225
},
2326
],
2427
plugins: [
2528
sass({ insert: true }),
26-
2729
peerDepsExternal(),
28-
resolve(
29-
// { preferBuiltins: true, mainFields: ['browser'] }
30-
),
31-
commonjs(),
32-
typescript(),
33-
//terser(),
34-
//json(),
35-
// jsx( {factory: 'React.createElement'} ),
30+
resolve({
31+
extensions: [".ts", ".tsx", ".js", ".jsx"],
32+
preferBuiltins: true,
33+
mainFields: ["module", "main", "browser"],
34+
}),
35+
commonjs({
36+
include: /node_modules/,
37+
extensions: [".js", ".ts"],
38+
}),
39+
typescript({
40+
tsconfig: "./tsconfig.json",
41+
clean: true,
42+
}),
43+
terser(),
3644
],
45+
external: ["react", "react-dom"],
3746
};

0 commit comments

Comments
 (0)