measurement-framework
Version:
Collection of Javascript code to implement a browser based measurement system for websites. It uses a cookie to store a users action on a webpage and let you map thoose actions to a particular state in the user journey.
84 lines (81 loc) • 2.41 kB
JavaScript
import resolve from "rollup-plugin-node-resolve"
import commonjs from "rollup-plugin-commonjs"
import babel from "rollup-plugin-babel"
import uglify from "rollup-plugin-uglify"
import {minify} from "uglify-es"
import json from "rollup-plugin-json"
import eslint from "rollup-plugin-eslint"
import replace from "rollup-plugin-replace"
import sizes from "rollup-plugin-sizes"
import filesize from "rollup-plugin-filesize"
// `npm run build` -> `production` is true
// `npm run dev` -> `production` is false
let production = function () {
let prod = !process.env.ROLLUP_WATCH
console.log(prod)
return prod
}
/*
const babel_preset = {
presets: [
["@babel/preset-env", {
"targets": {
"browsers": ["> 0.5%"]
}
}]
]
};
*/
export default {
input: 'src/measurement-framework.js',
sourcemap: false,
output: {
name: "measurementFramework",
file: 'public/measurement-framework.js',
format: 'iife', // immediately-invoked function expression — suitable for <script> tags
sourcemap: false,
globals: {
window: 'window',
document: 'document'
}
},
treeshake: true,
external: ['window', 'document'],
plugins: [
json(),
replace({
"RMFBUILDTIME": new Date().toISOString()
}),
resolve({
module: true, // Default: true
jsnext: true, // Default: false
main: true, // Default: true
browser: true, // Default: false
extensions: ['.js', '.json'], // Default: ['.js']
preferBuiltins: true, // Default: true
modulesOnly: false, // Default: false
customResolveOptions: {}
}), // tells Rollup how to find date-fns in node_modules
commonjs(), // converts date-fns to ES modules
eslint({}),
babel({
exclude: [
'node_modules/**',
'*.json'
],
plugins: ["lodash"]
}),
production() && uglify({
toplevel: true,
ie8: true,
sourceMap: false,
mangle: true,
compress: {
toplevel: true
//reduce_vars: false
}
}, minify), // minify, but only in production
sizes({}),
filesize()
]
}