-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrollup.config.js
59 lines (57 loc) · 1.39 KB
/
rollup.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import commonjs from "rollup-plugin-commonjs";
import nodeResolve from "rollup-plugin-node-resolve";
import babel from "rollup-plugin-babel";
import fp from "lodash/fp";
import {
dependencies,
devDependencies,
peerDependencies,
browserslist,
} from "./package.json";
export const extensions = [".js", ".jsx", ".ts", ".tsx"];
export default {
input: "./src/index.ts",
external: fp.uniq([
// Do not package dependencies
...Object.keys(dependencies || {}),
// Do not package dev dependencies
...Object.keys(devDependencies || {}),
// Do not package peer dependencies
...Object.keys(peerDependencies || {}),
"lodash/fp",
]),
plugins: [
nodeResolve({ extensions, mainFields: ["module"] }),
babel({
babelrc: false,
extensions,
exclude: "**/node_modules/**",
runtimeHelpers: true,
presets: [
[
"@babel/preset-env",
{ loose: true, modules: false, targets: browserslist.join(",") },
],
"@babel/preset-react",
"@babel/preset-typescript",
],
}),
commonjs({
extensions,
}),
],
output: [
{
dir: "lib",
entryFileNames: "[name].cjs.js",
chunkFileNames: "[name]-[hash].cjs.js",
format: "cjs",
},
{
dir: "lib",
entryFileNames: "[name].esm.js",
chunkFileNames: "[name]-[hash].esm.js",
format: "es",
},
],
};