text: const fs = require('fs');
  const path = require('path');
  const { babel } = require('@rollup/plugin-babel');
  const commonjs = require('@rollup/plugin-commonjs');
  const { nodeResolve } = require('@rollup/plugin-node-resolve');
  const postcss = require('rollup-plugin-postcss');
  const { eslint } = require('rollup-plugin-eslint');
  const autoprefixer = require('autoprefixer');
  const cssnano = require('cssnano');
  const replace = require('@rollup/plugin-replace');
  const svgo = require('rollup-plugin-svgo');
  const { sizeSnapshot } = require('rollup-plugin-size-snapshot');
  const { terser } = require('rollup-plugin-terser');
  const copyAfterBuild = require('./copyAfterBuild');
  const removeHtmlSpace = require('./removeHtmlSpace');
  const json = require('@rollup/plugin-json');
  
  module.exports = function creatRollupConfig(projectPath) {
      const packageJson = JSON.parse(fs.readFileSync(path.join(projectPath, 'package.json'), 'utf-8'));
      const { version, homepage, name, expose } = packageJson;
      const isProd = process.env.NODE_ENV === 'production';
      const banner =
          '/*!\n' +
          ` * ${name}.js v${version}\n` +
          ` * Github: ${homepage}\n` +
          ` * (c) 2017-${new Date().getFullYear()} Harvey Zack\n` +
          ' * Released under the MIT License.\n' +
          ' */\n';
  
      return {
          input: path.join(projectPath, 'src/index.js'),
          output: {
              name: expose,
              file: isProd
                  ? path.join(projectPath, `dist/${name}.js`)
                  : path.join(process.cwd(), `docs/uncompiled/${name}.js`),
              format: 'umd',
              sourcemap: isProd ? false : true,
          },
          watch: {
              exclude: ['node_modules/**', 'packages/**/node_modules/**'],
          },
          plugins: [
              json({
                  exclude: ['node_modules/**', 'packages/**/node_modules/**'],
              }),
              eslint({
                  exclude: [
                      'node_modules/**',
                      'packages/*/src/**/*.scss',
                      'packages/*/src/**/*.svg',
                      'packages/*/src/**/*.json',
                  ],
              }),
              postcss({
                  plugins: [
                      autoprefixer(),
                      cssnano({
                          preset: [
                              'default',
                              {
                                  calc: false,
                              },
                          ],
                      }),
                  ],
                  sourceMap: isProd ? false : true,
                  extract: false,
              }),
              nodeResolve(),
              commonjs(),
              babel({
                  babelHelpers: 'runtime',
                  exclude: ['node_modules/**', 'packages/**/node_modules/**'],
                  presets: [['@babel/env', { modules: false }]],
                  plugins: ['@babel/plugin-external-helpers', '@babel/plugin-transform-runtime'],
              }),
              svgo({
                  raw: true,
              }),
              replace({
                  preventAssignment: true,
                  exclude: 'node_modules/**',
                  __ENV__: process.env.NODE_ENV || 'development',
                  __VERSION__: version,
                  __BUILD__: Date.now(),
              }),
              isProd && sizeSnapshot(),
              isProd && removeHtmlSpace(),
              isProd &&
                  terser({
                      output: {
                          preamble: banner,
                          comments: function () {
                              return false;
                          },
                      },
                  }),
              isProd &&
                  copyAfterBuild({
                      from: path.join(projectPath, 'dist/*'),
                      to: path.join(process.cwd(), 'dist'),
                  }),
          ],
      };
  };
  