Skip to content

Commit

Permalink
fix: generate esm modules for storybook addons
Browse files Browse the repository at this point in the history
  • Loading branch information
atanasster committed Feb 12, 2020
1 parent 5ce8d0d commit b6177a3
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 7 deletions.
87 changes: 86 additions & 1 deletion integrations/storybook/rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,89 @@
import { config } from 'docz-rollup';
const { omit } = require('lodash/fp');
const typescript = require('rollup-plugin-typescript2');
const babel = require('rollup-plugin-babel');
const json = require('rollup-plugin-json');
const commonjs = require('rollup-plugin-commonjs');
const nodeResolve = require('rollup-plugin-node-resolve');
const alias = require('rollup-plugin-alias');
const progress = require('rollup-plugin-progress');

const EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.es6', '.es', '.mjs'];
const omitOpts = omit([
'alias',
'external',
'output',
'plugins',
'runtimeHelpers',
'filename',
]);

const defaultExternal = id =>
!id.startsWith('\0') &&
!id.startsWith('~') &&
!id.startsWith('.') &&
!id.startsWith(process.platform === 'win32' ? process.cwd() : '/');

const createOutput = (dir = 'dist', defaultOpts) => {
const opts = omitOpts(defaultOpts);
const {
alias: moduleAlias,
external,
output,
plugins = [],
runtimeHelpers,
filename,
} = defaultOpts;

const defaultPlugins = [
Object.keys(moduleAlias || {}).length > 0 &&
alias({
...moduleAlias,
resolve: EXTENSIONS,
}),
nodeResolve({
mainFields: ['module', 'main'],
browser: true,
}),
commonjs({
include: /\/node_modules\//,
}),
json(),
typescript({
typescript: require('typescript'),
rollupCommonJSResolveHack: true,
}),
babel({
runtimeHelpers,
extensions: EXTENSIONS,
exclude: 'node_modules/**',
}),
progress({
clearLine: false,
}),
];

const outputs = [
{
dir,
format: 'esm',
chunkFileNames: filename ? `${filename}.js` : `[name].js`,
entryFileNames: filename ? `${filename}.js` : `[name].js`,
...output,
},
];

return {
...opts,
external: external || defaultExternal,
plugins: defaultPlugins.filter(Boolean).concat(plugins),
output: outputs,
};
};

const config = opts => {
const inputs = Array.isArray(opts) ? opts : [opts];
return inputs.map(({ dest: dir, ...opts }) => createOutput(dir, opts));
};

export default config({
input: [
Expand Down
9 changes: 5 additions & 4 deletions integrations/storybook/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"module": "esnext",
"outDir": "dist",
"rootDir": "src",
"declaration": true,
"types": ["node", "jest"],
"sourceMap": false,
"outDir": "./dist",
"rootDir": "./src",
"baseUrl": "./",
"typeRoots": ["../../node_modules/@types", "node_modules/@types"]
},
"include": ["src/**/*", "src/typings.d.ts"],
"include": ["src/**/*"],
"exclude": ["node_modules/**"]
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
"lint-staged": "^9.2.0",
"npm-run-all": "^4.1.5",
"prettier": "^1.18.2",
"rollup": "^1.17.0",
"rollup": "^1.31.0",
"storybook-addon-deps": "^1.0.11",
"storybook-dark-mode": "^0.3.0",
"trash-cli": "^3.0.0",
Expand Down
2 changes: 1 addition & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14235,7 +14235,7 @@ rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.8.1:
dependencies:
estree-walker "^0.6.1"

rollup@^1.17.0:
rollup@^1.17.0, rollup@^1.31.0:
version "1.31.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.31.0.tgz#e2a87212e96aa7850f3eb53fdd02cf89f2d2fe9a"
integrity sha512-9C6ovSyNeEwvuRuUUmsTpJcXac1AwSL1a3x+O5lpmQKZqi5mmrjauLeqIjvREC+yNRR8fPdzByojDng+af3nVw==
Expand Down

0 comments on commit b6177a3

Please sign in to comment.