JSFiddle - React, Tailwind, and code Playground

by cream_dus

JavaScript

//tsconfig.json:

{
  "compilerOptions": {
    "module": "es6",
    "target": "es5", //"es5" for IE11 support
    "sourceMap": false,
    "moduleResolution": "node"
  },
  "exclude": [
    "node_modules"
  ]
}


//package.json:

{
  "name": "cream-web-code-splitting",
  "devDependencies": {
    "bluebird": "^3.5.5",
    "gsap": "^2.1.2",
    "rollup": "^1.0.0",
    "rollup-plugin-clear": "^2.0.7",
    "rollup-plugin-copy": "^2.0.1",
    "rollup-plugin-node-resolve": "^5.0.0",
    "rollup-plugin-terser": "^4.0.4",
    "rollup-plugin-typescript2": "^0.21.0",
    "serve": "^10.1.1",
    "stats.js": "^0.17.0",
    "terser": "^3.17.0",
    "three": "github:mrdoob/three.js#dev",
    "typescript": "^3.4.5",
    "whatwg-fetch": "^3.0.0"
  },
  "scripts": {
    "build": "rollup -c",
    "watch": "rollup -c -w",
    "dev": "npm-run-all --parallel start watch",
    "start": "serve public",
    "startsrc": "serve"
  },
  "dependencies": {
    "@types/gsap": "^1.20.2",
    "@types/jquery": "^3.3.29"
  }
}



//rollup.config.js:

import typescript from 'rollup-plugin-typescript2'
import resolve from 'rollup-plugin-node-resolve'
import {terser} from 'rollup-plugin-terser'
import copy from 'rollup-plugin-copy'
import clear from 'rollup-plugin-clear'

export default {

    input: ["./main.ts"],

    output: [

        // ES module version, for modern browsers
        {
            dir: "public",
            format: "esm",
            sourcemap: false
        },


        // SystemJS version, for older browsers
        {
            dir: "public/nomodule",
            format: "system",
            sourcemap: false
        }
    ],


    plugins: [
        typescript({
            objectHashIgnoreUnknownHack: true
        }),

        clear({
            // required, point out which directories should be clear.
            targets: ['public']
        }),

        terser(),


        copy({
            targets: ['assets', 'index.html', 'favicon.png'],
            outputFolder:...