From 4dc19d4205a8f180e3eca76bbb57558bd10aad35 Mon Sep 17 00:00:00 2001 From: Austio Date: Tue, 9 May 2017 21:40:29 -0500 Subject: [PATCH] Add build script using rollup --- .babelrc | 3 +++ .gitignore | 2 +- package.json | 20 +++++++++++++------- rollup.config.js | 25 +++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 .babelrc create mode 100644 rollup.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..5712302 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["stage-0"] +} diff --git a/.gitignore b/.gitignore index 88edb62..b947077 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ node_modules/ -lib/ +dist/ diff --git a/package.json b/package.json index b592490..e8afd09 100644 --- a/package.json +++ b/package.json @@ -2,14 +2,14 @@ "name": "vue-apollo", "version": "2.1.0-beta.8", "description": "Vue apollo integration", - "main": "lib/index.js", + "main": "dist/main.min.js", "scripts": { - "compile": "babel --presets es2015,stage-0 -d lib/ src/", - "prepublish": "npm run compile", + "build": "rimraf ./dist && ./node_modules/.bin/rollup -c", + "prepublish": "npm run build", "dev": "npm-watch" }, "watch": { - "compile": "src/*.js" + "build": "src/*.js" }, "repository": { "type": "git", @@ -38,12 +38,18 @@ "devDependencies": { "babel-cli": "^6.14.0", "babel-eslint": "^7.1.1", - "babel-preset-es2015": "^6.14.0", - "babel-preset-stage-0": "^6.16.0", + "babel-preset-stage-0": "^6.24.1", "eslint": "^3.12.1", "eslint-config-standard": "^7.1.0", "eslint-plugin-promise": "^3.4.0", "eslint-plugin-standard": "^2.0.1", - "npm-watch": "^0.1.6" + "npm-watch": "^0.1.6", + "rimraf": "^2.6.1", + "rollup": "^0.41.6", + "rollup-plugin-babel": "^2.7.1", + "rollup-plugin-commonjs": "^8.0.2", + "rollup-plugin-node-resolve": "^3.0.0", + "rollup-plugin-uglify": "^1.0.2", + "uglify-js-harmony": "^2.7.7" } } diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..dcc0918 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,25 @@ +import commonjs from 'rollup-plugin-commonjs'; +import resolve from 'rollup-plugin-node-resolve'; +import babel from 'rollup-plugin-babel'; +import uglify from 'rollup-plugin-uglify'; +import { minify } from 'uglify-js-harmony'; + +export default { + entry: 'src/index.js', + dest: 'dist/main.min.js', + format: 'iife', + exports: 'named', + moduleName: 'vue-apollo', + plugins: [ + resolve({ + jsnext: true, + main: true, + browser: true, + }), + commonjs(), + babel({ + exclude: 'node_modules/**', + }), + uglify({}, minify) + ], +};