From 4d016076259111a8570dad01baefe3b84d84fa81 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 27 Oct 2015 11:06:29 -0400 Subject: [PATCH] use rollup CLI for build --- .babelrc | 3 ++- gobblefile.js | 57 ---------------------------------------- package.json | 10 +++---- rollup.config.browser.js | 12 +++++++++ rollup.config.js | 32 ++++++++++++++++++++++ 5 files changed, 49 insertions(+), 65 deletions(-) delete mode 100644 gobblefile.js create mode 100644 rollup.config.browser.js create mode 100644 rollup.config.js diff --git a/.babelrc b/.babelrc index 27617a4..e4491c2 100644 --- a/.babelrc +++ b/.babelrc @@ -15,5 +15,6 @@ "es6.classes", "es6.destructuring" ], - "compact": false + "compact": false, + "sourceMap": true } diff --git a/gobblefile.js b/gobblefile.js deleted file mode 100644 index 0eab8ef..0000000 --- a/gobblefile.js +++ /dev/null @@ -1,57 +0,0 @@ -var gobble = require( 'gobble' ); -var fs = require( 'fs' ); - -var version = require( './package.json' ).version; -var commitHash = (function () { - try { - return fs.readFileSync( '.commithash', 'utf-8' ); - } catch ( err ) { - return 'unknown'; - } -})(); - -var banner = fs.readFileSync( 'src/banner.js' ).toString() - .replace( '${version}', version ) - .replace( '${time}', new Date() ) - .replace( '${commitHash}', commitHash ); - -var src = gobble( 'src' ); - -var node = src - .transform( 'rollup-babel', { - entry: 'rollup.js', - dest: 'rollup.js', - format: 'cjs', - external: [ 'fs' ], - sourceMap: true, - banner: banner, - load: function ( id ) { - if ( ~id.indexOf( 'rollup.js' ) ) { - return fs.readFileSync( 'src/rollup.js', 'utf-8' ).replace( /<@VERSION@>/, version ); - } - } - }); - -var browserPlaceholders = { - fs: fs.readFileSync( 'browser/fs.js' ).toString(), - promise: fs.readFileSync( 'browser/promise.js' ).toString() -}; - -var browser = src - .transform( 'rollup-babel', { - entry: 'rollup.js', - dest: 'rollup.browser.js', - format: 'umd', - moduleName: 'rollup', - sourceMap: true, - banner: banner, - load: function ( id ) { - if ( ~id.indexOf( 'rollup.js' ) ) { - return fs.readFileSync( 'src/rollup.js', 'utf-8' ).replace( /<@VERSION@>/, version ); - } - if ( ~id.indexOf( 'fs.js' ) ) return browserPlaceholders.fs; - if ( ~id.indexOf( 'es6-promise' ) ) return browserPlaceholders.promise; - } - }); - -module.exports = gobble([ node, browser ]); diff --git a/package.json b/package.json index f0feea3..6dba671 100644 --- a/package.json +++ b/package.json @@ -14,8 +14,9 @@ "test-coverage": "rm -rf coverage/* && istanbul cover --report json node_modules/.bin/_mocha -- -u exports -R spec test/test.js", "posttest-coverage": "remap-istanbul -i coverage/coverage-final.json -o coverage/coverage-remapped.json -b dist && remap-istanbul -i coverage/coverage-final.json -o coverage/coverage-remapped.lcov -t lcovonly -b dist && remap-istanbul -i coverage/coverage-final.json -o coverage/coverage-remapped -t html -b dist", "ci": "npm run test-coverage && codecov < coverage/coverage-remapped.lcov", - "build": "git rev-parse HEAD > .commithash && gobble build -f dist", - "prepublish": "npm test", + "build": "git rev-parse HEAD > .commithash && rollup -c", + "build:browser": "git rev-parse HEAD > .commithash && rollup -c rollup.config.browser.js", + "prepublish": "npm test && npm run build:browser", "lint": "eslint src" }, "repository": { @@ -46,11 +47,6 @@ "es6-promise": "^3.0.2", "eslint": "^1.7.1", "estree-walker": "^0.2.0", - "gobble": "^0.10.1", - "gobble-babel": "^5.5.8", - "gobble-cli": "^0.6.0", - "gobble-rollup": "^0.10.0", - "gobble-rollup-babel": "^0.6.1", "istanbul": "^0.4.0", "magic-string": "^0.8.0", "mocha": "^2.3.3", diff --git a/rollup.config.browser.js b/rollup.config.browser.js new file mode 100644 index 0000000..ea673f6 --- /dev/null +++ b/rollup.config.browser.js @@ -0,0 +1,12 @@ +import config from './rollup.config.js'; + +config.plugins.push({ + load: function ( id ) { + if ( ~id.indexOf( 'fs.js' ) ) return readFileSync( 'browser/fs.js' ).toString(); + if ( ~id.indexOf( 'es6-promise' ) ) return readFileSync( 'browser/promise.js' ).toString(); + } +}); + +config.format = 'umd'; + +export default config; diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..fbba53a --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,32 @@ +import { readFileSync } from 'fs'; +import babel from 'rollup-plugins-babel'; +import replace from 'rollup-plugins-replace'; + +var pkg = JSON.parse( readFileSync( 'package.json', 'utf-8' ) ); +var version = JSON.parse( pkg.version ); +var commitHash = (function () { + try { + return readFileSync( '.commithash', 'utf-8' ); + } catch ( err ) { + return 'unknown'; + } +})(); + +var banner = readFileSync( 'src/banner.js', 'utf-8' ) + .replace( '${version}', version ) + .replace( '${time}', new Date() ) + .replace( '${commitHash}', commitHash ); + +export default { + entry: 'src/rollup.js', + format: 'cjs', + plugins: [ + babel(), + replace({ + 'VERSION': pkg.version + }) + ], + external: [ 'fs' ], + banner: banner, + sourceMap: true +};