From dfd8528b8dcbe82ed9923266c562b9b18d2b1ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rouven=20We=C3=9Fling?= Date: Mon, 7 Jan 2019 22:58:27 +0100 Subject: [PATCH] build(): use rollup to create ESM and CommonJS bundles --- .babelrc | 29 +++++------------------------ index.es-modules.js | 6 ------ index.js | 6 ------ lib/index.js | 6 ++++++ package.json | 21 +++++++++------------ rollup.config.js | 28 ++++++++++++++++++++++++++++ 6 files changed, 48 insertions(+), 48 deletions(-) delete mode 100644 index.es-modules.js delete mode 100644 index.js create mode 100644 lib/index.js create mode 100644 rollup.config.js diff --git a/.babelrc b/.babelrc index dcadd25..646b4c3 100644 --- a/.babelrc +++ b/.babelrc @@ -1,26 +1,7 @@ { - "env": { - "test": { - "presets": [ - ["@babel/env"] - ], - "plugins": ["rewire"], - "sourceMaps": "inline" - }, - "es5": { - "presets": [ - ["@babel/env"] - ], - "plugins": [ - "add-module-exports" - ] - }, - "es-modules": { - "presets": [ - ["@babel/env", { - "modules": false - }] - ] - } - } + "presets": [ + ["@babel/env"] + ], + "plugins": ["rewire"], + "sourceMaps": "inline" } diff --git a/index.es-modules.js b/index.es-modules.js deleted file mode 100644 index 46ed4f6..0000000 --- a/index.es-modules.js +++ /dev/null @@ -1,6 +0,0 @@ -export { default as createHttpClient } from './dist/es-modules/create-http-client' -export { default as createRequestConfig } from './dist/es-modules/create-request-config' -export { default as enforceObjPath } from './dist/es-modules/enforce-obj-path' -export { default as freezeSys } from './dist/es-modules/freeze-sys' -export { default as getUserAgentHeader } from './dist/es-modules/get-user-agent' -export { default as toPlainObject } from './dist/es-modules/to-plain-object' diff --git a/index.js b/index.js deleted file mode 100644 index 017a136..0000000 --- a/index.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports.createHttpClient = require('./dist/es5/create-http-client') -module.exports.createRequestConfig = require('./dist/es5/create-request-config') -module.exports.enforceObjPath = require('./dist/es5/enforce-obj-path') -module.exports.freezeSys = require('./dist/es5/freeze-sys') -module.exports.getUserAgentHeader = require('./dist/es5/get-user-agent') -module.exports.toPlainObject = require('./dist/es5/to-plain-object') diff --git a/lib/index.js b/lib/index.js new file mode 100644 index 0000000..9c449f2 --- /dev/null +++ b/lib/index.js @@ -0,0 +1,6 @@ +export { default as createHttpClient } from './create-http-client' +export { default as createRequestConfig } from './create-request-config' +export { default as enforceObjPath } from './enforce-obj-path' +export { default as freezeSys } from './freeze-sys' +export { default as getUserAgentHeader } from './get-user-agent' +export { default as toPlainObject } from './to-plain-object' diff --git a/package.json b/package.json index 86a5a9a..440a0da 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "version": "0.0.1-determined-by-semantic-release", "description": "Core modules for the Contentful JS SDKs", "homepage": "https://www.contentful.com/developers/docs/javascript/", - "main": "index.js", - "module": "index.es-modules.js", - "jsnext:main": "index.es-modules.js", + "main": "dist/index.js", + "module": "dist/index.es-modules.js", + "jsnext:main": "dist/index.es-modules.js", "browser": { "os": false }, @@ -17,16 +17,14 @@ "license": "MIT", "scripts": { "clean": "rimraf coverage && rimraf dist", - "build": "npm run clean && npm run build:es5 && npm run build:es-modules", - "build:es5": "BABEL_ENV=es5 babel lib -d dist/es5", - "build:es-modules": "BABEL_ENV=es-modules babel lib -d dist/es-modules", + "build": "npm run clean && rollup -c", "lint": "eslint lib test", "pretest": "npm run lint", "test": "npm run test:cover", "test:ci-emulate": "trevor", - "test:cover": "BABEL_ENV=test babel-node ./node_modules/istanbul/lib/cli.js cover ./test/runner | tap-spec", - "test:unit": "BABEL_ENV=test babel-node ./test/runner | tap-spec", - "test:debug": "BABEL_ENV=test babel-node debug ./test/runner", + "test:cover": "babel-node ./node_modules/istanbul/lib/cli.js cover ./test/runner | tap-spec", + "test:unit": "babel-node ./test/runner | tap-spec", + "test:debug": "babel-node debug ./test/runner", "browser-coverage": "npm run test:cover && opener coverage/lcov-report/index.html", "prepublish": "in-publish && npm run build || not-in-publish", "semantic-release": "semantic-release", @@ -35,8 +33,6 @@ }, "files": [ "dist", - "index.js", - "index.es-modules.js", "bin" ], "engines": { @@ -54,7 +50,6 @@ "@babel/register": "^7.0.0", "axios": "^0.19.0", "axios-mock-adapter": "^1.15.0", - "babel-plugin-add-module-exports": "^1.0.0", "babel-plugin-rewire": "^1.2.0", "blue-tape": "^1.0.0", "codecov": "^3.0.4", @@ -74,6 +69,8 @@ "opener": "^1.4.1", "require-all": "^3.0.0", "rimraf": "^2.6.2", + "rollup": "^1.0.2", + "rollup-plugin-babel": "^4.2.0", "semantic-release": "^15.8.0", "sinon": "^7.3.2", "tap-spec": "^5.0.0", diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..57e23ad --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,28 @@ +import pkg from './package.json'; +import babel from 'rollup-plugin-babel'; + +export default [ + { + input: 'lib/index.js', + output: [ + { file: pkg.module, format: 'esm' }, + { file: pkg.main, format: 'cjs' }, + ], + plugins: [ + babel({ + babelrc: false, + presets: [ + ['@babel/env', { + modules: false + }] + ] + }) + ], + external: [ + ...Object.keys(pkg.dependencies || []), + 'os', + 'lodash/isPlainObject', + 'lodash/cloneDeep' + ] + } +];