1 | import nodeResolve from 'rollup-plugin-node-resolve';
|
2 | import commonjs from 'rollup-plugin-commonjs';
|
3 | import json from 'rollup-plugin-json';
|
4 | import babel from 'rollup-plugin-babel';
|
5 | import { writeFileSync } from 'fs';
|
6 | import pkg from './package.json';
|
7 |
|
8 | const includeDeps = ['shared'];
|
9 |
|
10 | includeDeps.forEach(d => {
|
11 | delete pkg.dependencies[d];
|
12 | });
|
13 |
|
14 | if (process.env.REMOVE_DEPS) {
|
15 | writeFileSync(`${__dirname}/package.json`, JSON.stringify(pkg, null, 2));
|
16 | }
|
17 |
|
18 | function generateOptions(input, output) {
|
19 | return {
|
20 | input: [input],
|
21 | output: {
|
22 | file: output,
|
23 | format: 'cjs',
|
24 | },
|
25 | external: ['fs', 'path', ...Object.keys(pkg.dependencies)],
|
26 | plugins: [
|
27 | json(),
|
28 | babel({
|
29 | extensions: ['.ts', '.tsx'],
|
30 | presets: [
|
31 | ['@babel/typescript'],
|
32 | ['@babel/react'],
|
33 | [
|
34 | '@babel/env',
|
35 | {
|
36 | targets: { node: '8' },
|
37 | modules: false,
|
38 | useBuiltIns: 'usage',
|
39 | corejs: '3',
|
40 | },
|
41 | ],
|
42 | ],
|
43 | plugins: [
|
44 | '@babel/proposal-class-properties',
|
45 | '@babel/proposal-object-rest-spread',
|
46 | ],
|
47 | }),
|
48 | nodeResolve({
|
49 | preferBuiltins: true,
|
50 | extensions: ['.mjs', '.js', '.json', '.node', '.ts', '.tsx'],
|
51 | }),
|
52 | commonjs({
|
53 | include: /node_modules/,
|
54 | namedExports: {
|
55 | '../shared/node_modules/js-yaml/index.js': ['safeLoad'],
|
56 | },
|
57 | }),
|
58 | ],
|
59 | };
|
60 | }
|
61 |
|
62 | export default [
|
63 | generateOptions('src/index.ts', 'lib/index.js'),
|
64 | generateOptions('src/workers/ts.ts', 'lib/workers/ts.js'),
|
65 | generateOptions('src/workers/prettier.ts', 'lib/workers/prettier.js'),
|
66 | generateOptions('src/workers/eslint.ts', 'lib/workers/eslint.js'),
|
67 | ];
|