rollup.config.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import path from 'path'
  2. import replace from '@rollup/plugin-replace'
  3. import resolveNode from '@rollup/plugin-node-resolve'
  4. import commonjs from '@rollup/plugin-commonjs'
  5. import babel from '@rollup/plugin-babel'
  6. import babelEnvConfig from './babel.env.config'
  7. import { terser } from 'rollup-plugin-terser'
  8. const pkg = require(`./package.json`)
  9. const version = pkg.version
  10. const isProd = process.env.NODE_ENV === 'production'
  11. const dist = file => path.resolve('dist/js/' + file)
  12. function createReplacePlugin() {
  13. const replacements = {
  14. __COMMIT__: `"${process.env.COMMIT}"`,
  15. __VERSION__: `"${version}"`,
  16. __ENV__: `"${process.env.NODE_ENV}"`,
  17. __PROD__: isProd,
  18. __DEV__: !isProd,
  19. }
  20. Object.keys(replacements).forEach(key => {
  21. if (key in process.env) {
  22. replacements[key] = process.env[key]
  23. }
  24. })
  25. return replace({
  26. values: replacements,
  27. preventAssignment: true,
  28. })
  29. }
  30. const sdk_plugins = [
  31. resolveNode({
  32. mainFields: ['jsnext', 'main'],
  33. preferBuiltins: true,
  34. browser: true,
  35. }),
  36. babel(babelEnvConfig()),
  37. commonjs(),
  38. createReplacePlugin()
  39. ]
  40. if (isProd) {
  41. sdk_plugins.push(terser())
  42. }
  43. export default [
  44. {
  45. input: 'src/index.js',
  46. //external: ['three'],
  47. output: [
  48. {
  49. globals: {
  50. // three: 'THREE',
  51. },
  52. file: dist('index.js'),
  53. format: 'umd',
  54. name: 'Metaverse',
  55. sourcemap: !isProd,
  56. banner: pkg.banner.replace('${date}', new Date().toLocaleDateString()).replace('${author}', pkg.author).replace('${year}', new Date().getFullYear()),
  57. },
  58. ],
  59. plugins: sdk_plugins,
  60. },
  61. ]