rollup.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* eslint-disable */
  2. // npm install rollup-plugin-typescript2 typescript --save-dev
  3. import typescript from 'rollup-plugin-typescript2'
  4. // ------------------------------------------------------------------------------------------
  5. // formats
  6. // ------------------------------------------------------------------------------------------
  7. // amd – Asynchronous Module Definition, used with module loaders like RequireJS
  8. // cjs – CommonJS, suitable for Node and Browserify/Webpack
  9. // esm – Keep the bundle as an ES module file
  10. // iife – A self-executing function, suitable for inclusion as a <script> tag. (If you want to create a bundle for your application, you probably want to use this, because it leads to smaller file sizes.)
  11. // umd – Universal Module Definition, works as amd, cjs and iife all in one
  12. // system – Native format of the SystemJS loader
  13. // ------------------------------------------------------------------------------------------
  14. // setup
  15. // ------------------------------------------------------------------------------------------
  16. const pkg = require('../package.json')
  17. const name = pkg.name
  18. const className = name.replace(/(^\w|-\w)/g, c => c.replace('-', '').toUpperCase())
  19. const external = Object.keys(pkg.dependencies || [])
  20. const plugins = [
  21. typescript({ useTsconfigDeclarationDir: true, tsconfigOverride: { exclude: ['test/**/*'] } }),
  22. ]
  23. // ------------------------------------------------------------------------------------------
  24. // Builds
  25. // ------------------------------------------------------------------------------------------
  26. function defaults (config) {
  27. // defaults
  28. const defaults = {
  29. plugins,
  30. external,
  31. }
  32. // defaults.output
  33. config.output = config.output.map(output => {
  34. return Object.assign(
  35. {
  36. sourcemap: false,
  37. name: className,
  38. },
  39. output
  40. )
  41. })
  42. return Object.assign(defaults, config)
  43. }
  44. export default [
  45. defaults({
  46. input: 'src/index.ts',
  47. output: [
  48. { file: 'dist/index.cjs.js', format: 'cjs' },
  49. { file: 'dist/index.esm.js', format: 'esm' },
  50. ],
  51. }),
  52. ]