diff --git a/package.json b/package.json index 87b5182..a3c002a 100644 --- a/package.json +++ b/package.json @@ -2,21 +2,17 @@ "name": "trimkit", "version": "1.0.2", "description": "Javascript and DOM abstractions for smaller minifiable code", - "main": "lib/index.js", - "jsnext:main": "src/index.js", + "main": "dist/trimkit.js", + "module": "dist/trimkit.js", "files": [ - "dist", - "lib", - "src" + "dist/" ], "scripts": { "lint": "eslint src", - "clean": "rimraf dist lib", - "build:lib": "NODE_ENV=production babel src --presets=\"stage-0,es2015\" --out-dir lib", - "build:umd": "npm run build:lib && NODE_ENV=production rollup -c", - "build:umd:min": "npm run build:umd && uglifyjs -m --screw-ie8 -c -o dist/trimkit.min.js dist/trimkit.js", - "build:umd:gzip": "npm run build:umd:min && gzip -c9 dist/trimkit.min.js > dist/trimkit.min.js.gz", - "build": "npm run build:umd:gzip && ls -l dist/", + "clean": "rimraf dist", + "build:umd": "rollup -c rollup.config.js && uglifyjs -m --screw-ie8 -c -o dist/trimkit.min.js dist/trimkit.js", + "build:umd:zip": "npm run build:umd && gzip -c9 dist/trimkit.min.js > dist/trimkit.min.js.gz && gzip -c9 dist/trimkit.min.mjs > dist/trimkit.min.mjs.gz", + "build": "npm run build:umd:zip && ls -l dist/", "prepublish": "npm run clean && npm run build" }, "repository": { @@ -40,10 +36,10 @@ "babel-preset-es2015-rollup": "3.0.0", "babel-preset-stage-0": "6.16.0", "eslint": "3.2.0", - "eslint-plugin-flowtype": "2.29.1", "rimraf": "2.5.4", + "rollup": "0.66.6", "rollup-plugin-babel": "2.7.1", - "rollup-plugin-json": "2.1.0", - "uglifyjs": "2.4.10" + "rollup-plugin-esmin": "0.1.3", + "uglify-es": "3.3.9" } } diff --git a/rollup.config.js b/rollup.config.js index c65d50b..cba041e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,10 +1,44 @@ -import json from 'rollup-plugin-json'; +import esmin from 'rollup-plugin-esmin'; +import babel from 'rollup-plugin-babel'; +import pkg from './package.json'; - -export default { - entry: 'src/index.js', - format: 'umd', - moduleName: 'Trimkit', - plugins: [ json() ], - dest: 'dist/trimkit.js' +const config = { + input: 'src/index.js', + output: { + file: pkg.module, + format: 'es' + } }; + +export default [ + // trimkit.mjs + config, + + // trimkit.min.mjs + { + ...config, + output: { + ...config.output, + file: 'dist/trimkit.min.mjs' + }, + plugins: [ esmin({ + overrides: { + sourceType: 'module' + } + }) ] + }, + + // trimkit.js + { + ...config, + output: { + format: 'umd', + file: 'dist/trimkit.js', + name: 'trimkit' + }, + plugins: [ + babel({ sourceType: 'module' }) + ] + + } +]