UNPKG

1.75 kBJavaScriptView Raw
1import nodeResolve from 'rollup-plugin-node-resolve';
2import commonjs from 'rollup-plugin-commonjs';
3import json from 'rollup-plugin-json';
4import babel from 'rollup-plugin-babel';
5import { writeFileSync } from 'fs';
6import pkg from './package.json';
7
8const includeDeps = ['shared'];
9
10includeDeps.forEach(d => {
11 delete pkg.dependencies[d];
12});
13
14if (process.env.REMOVE_DEPS) {
15 writeFileSync(`${__dirname}/package.json`, JSON.stringify(pkg, null, 2));
16}
17
18function 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
62export 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];