rollup.config.js 2.0 KB

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