rollup-modules.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const path = require('path')
  2. const { readFileSync } = require('fs')
  3. const nodeResolve = require('rollup-plugin-node-resolve')
  4. const { renderBanner, isRelPath, isScssPath, TEMPLATE_PLUGIN, SOURCEMAP_PLUGINS, WATCH_OPTIONS, onwarn } = require('./rollup-util')
  5. const { pkgStructs, getCorePkgStruct } = require('./pkg-struct')
  6. module.exports = function(isDev) {
  7. return pkgStructs.filter((pkgStruct) => !pkgStruct.isBundle)
  8. .map((pkgStruct) => buildPkgConfig(pkgStruct, isDev))
  9. }
  10. function buildPkgConfig(pkgStruct, isDev) {
  11. let banner = renderBanner(pkgStruct.jsonObj)
  12. return {
  13. input: path.join('tmp/tsc-output', pkgStruct.srcDir, 'main.js'),
  14. output: {
  15. file: path.join(pkgStruct.distDir, 'main.js'),
  16. format: 'esm',
  17. banner,
  18. sourcemap: isDev
  19. },
  20. external(id) {
  21. return !isRelPath(id)
  22. },
  23. plugins: [
  24. nodeResolve(),
  25. TEMPLATE_PLUGIN,
  26. ...(isDev ? SOURCEMAP_PLUGINS : []),
  27. {
  28. resolveId(id) {
  29. if (isScssPath(id) && isRelPath(id)) {
  30. return { id: './' + path.basename(id, '.scss') + '.css', external: true }
  31. }
  32. return null
  33. }
  34. }
  35. ],
  36. watch: WATCH_OPTIONS,
  37. onwarn
  38. }
  39. }