diff --git a/.gitignore b/.gitignore
index f06235c..6ad08ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
node_modules
-dist
+dist/speedscope-dev.js
diff --git a/dev.html b/dev.html
new file mode 100644
index 0000000..6fa64f3
--- /dev/null
+++ b/dev.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ SpeedScope
+
+
+
+
+
+
+
diff --git a/package.json b/package.json
index d8e6d1e..592f614 100644
--- a/package.json
+++ b/package.json
@@ -4,8 +4,8 @@
"description": "",
"main": "index.js",
"scripts": {
- "watch": "rollup -c --watch",
- "build": "rollup -c"
+ "serve": "./serveit -i node_modules 'node_modules/.bin/rollup -c rollup.config.dev.js'",
+ "release": "rollup -c rollup.config.release.js"
},
"author": "",
"license": "MIT",
@@ -16,15 +16,14 @@
"preact": "^8.2.6",
"react": "^16.1.1",
"react-dom": "^16.1.1",
+ "regl": "^1.3.0",
"rollup": "^0.51.5",
"rollup-plugin-commonjs": "^8.2.6",
"rollup-plugin-node-globals": "^1.1.0",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^2.0.0",
"rollup-plugin-typescript": "^0.8.1",
+ "rollup-plugin-uglify-es": "0.0.1",
"typescript": "^2.6.1"
- },
- "dependencies": {
- "regl": "^1.3.0"
}
}
diff --git a/rollup.config.common.js b/rollup.config.common.js
new file mode 100644
index 0000000..3565c37
--- /dev/null
+++ b/rollup.config.common.js
@@ -0,0 +1,42 @@
+import commonjs from 'rollup-plugin-commonjs';
+import nodeResolve from 'rollup-plugin-node-resolve';
+import typescript from 'rollup-plugin-typescript';
+import replace from 'rollup-plugin-replace';
+import nodeGlobals from 'rollup-plugin-node-globals';
+import uglify from 'rollup-plugin-uglify-es';
+
+export function config(isRelease) {
+ const plugins = [
+ typescript({
+ typescript: require('typescript')
+ }),
+ nodeResolve({
+ jsnext: true,
+ main: true
+ }),
+ commonjs({
+ include: 'node_modules/**',
+ namedExports: {
+ 'aphrodite': ['StyleSheet', 'css'],
+ 'react-dom': ['render'],
+ 'react': ['Component', 'createElement']
+ },
+ ignore: [ 'domain' ]
+ }),
+ replace({
+ 'process.env.NODE_ENV': JSON.stringify(isRelease ? 'prod' : 'development')
+ }),
+ nodeGlobals()
+ ]
+
+ if (isRelease) plugins.push(uglify())
+
+ return [{
+ input: 'index.tsx',
+ output: {
+ file: isRelease ? 'dist/speedscope.js' : 'dist/speedscope-dev.js',
+ format: 'iife'
+ },
+ plugins: plugins
+ }]
+}
diff --git a/rollup.config.dev.js b/rollup.config.dev.js
new file mode 100644
index 0000000..bef9f4d
--- /dev/null
+++ b/rollup.config.dev.js
@@ -0,0 +1,2 @@
+import {config} from './rollup.config.common.js'
+export default config(false)
diff --git a/rollup.config.js b/rollup.config.js
deleted file mode 100644
index b39af76..0000000
--- a/rollup.config.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import commonjs from 'rollup-plugin-commonjs';
-import nodeResolve from 'rollup-plugin-node-resolve';
-import typescript from 'rollup-plugin-typescript';
-import replace from 'rollup-plugin-replace';
-import nodeGlobals from 'rollup-plugin-node-globals';
-
-const plugins = [
- typescript({
- typescript: require('typescript')
- }),
- nodeResolve({
- jsnext: true,
- main: true
- }),
- commonjs({
- include: 'node_modules/**',
- namedExports: {
- 'aphrodite': ['StyleSheet', 'css'],
- 'react-dom': ['render'],
- 'react': ['Component', 'createElement']
- },
- ignore: [ 'domain' ]
- }),
- replace({
- 'process.env.NODE_ENV': JSON.stringify('development')
- }),
- nodeGlobals()
-]
-
-export default [{
- input: 'index.tsx',
- output: {
- file: 'dist/speedscope.js',
- format: 'iife'
- },
- plugins: plugins
-}]
diff --git a/rollup.config.release.js b/rollup.config.release.js
new file mode 100644
index 0000000..26053fb
--- /dev/null
+++ b/rollup.config.release.js
@@ -0,0 +1,2 @@
+import {config} from './rollup.config.common.js'
+export default config(true)