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:...