From 3fb0342800c220964f14dc16bc66bd5892ba333d Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 27 Jun 2019 11:56:43 -0400 Subject: [PATCH] Revamp bundling and testing strategies. --- .gitignore | 3 +++ .npmignore | 1 + package-lock.json | 31 ++++++++++++++++++++++++++++--- package.json | 8 +++++--- rollup.config.js | 14 ++++++++++++-- src/tests/index.ts | 7 ------- test.js | 8 ++++++++ tsconfig.rollup.json | 3 ++- 8 files changed, 59 insertions(+), 16 deletions(-) delete mode 100644 src/tests/index.ts create mode 100644 test.js diff --git a/.gitignore b/.gitignore index 7daf606..63ce121 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,6 @@ lib # Cache directory for rollup-plugin-typescript2 .rpt2_cache + +# Cache directory for Reify-compiled tests +.reify-cache diff --git a/.npmignore b/.npmignore index 4d31a4e..66e6e59 100644 --- a/.npmignore +++ b/.npmignore @@ -3,6 +3,7 @@ /lib/tests .travis.yml .rpt2_cache +.reify-cache tsconfig.json tsconfig.rollup.json rollup.config.js diff --git a/package-lock.json b/package-lock.json index 0876681..c14faf5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,12 @@ "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", "dev": true }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true + }, "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", @@ -1507,6 +1513,17 @@ "safe-regex": "^1.1.0" } }, + "reify": { + "version": "0.20.6", + "resolved": "https://registry.npmjs.org/reify/-/reify-0.20.6.tgz", + "integrity": "sha512-kCgL6HyzFBK3fIKwurPn0O4+mzdK4R4uOYyQxXaYm4B+QgrQ1EHiQ222qsLPEhB1ReBRh+njO0I4kw7hCGfM2w==", + "dev": true, + "requires": { + "acorn": "^6.1.1", + "acorn-dynamic-import": "^4.0.0", + "semver": "^5.4.1" + } + }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", @@ -1582,6 +1599,14 @@ "resolve": "1.10.1", "rollup-pluginutils": "2.6.0", "tslib": "1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + } } }, "rollup-pluginutils": { @@ -1955,9 +1980,9 @@ } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" }, "typescript": { "version": "3.5.2", diff --git a/package.json b/package.json index 93c0573..d85433e 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "tracker", "memoization" ], - "main": "lib/index.js", + "main": "lib/bundle.cjs.js", "module": "lib/bundle.esm.js", "types": "lib/index.d.ts", "license": "MIT", @@ -27,9 +27,9 @@ "url": "https://github.com/benjamn/optimism/issues" }, "scripts": { - "build": "npm run clean && tsc && rollup -c", + "build": "npm run clean && tsc --emitDeclarationOnly && rollup -c", "clean": "rimraf lib", - "mocha": "mocha --require source-map-support/register --reporter spec --full-trace lib/tests/index", + "mocha": "mocha --require source-map-support/register --reporter spec --full-trace test.js", "prepublish": "npm run build", "test": "npm run build && npm run mocha" }, @@ -38,10 +38,12 @@ "@types/node": "12.0.10", "fibers": "4.0.1", "mocha": "6.1.4", + "reify": "0.20.6", "rimraf": "2.6.3", "rollup": "1.16.2", "rollup-plugin-typescript2": "0.21.2", "source-map-support": "0.5.12", + "tslib": "1.10.0", "typescript": "3.5.2" }, "dependencies": { diff --git a/rollup.config.js b/rollup.config.js index 24bba2b..48168f4 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -38,9 +38,19 @@ export default [ "lib/bundle.esm.js", "esm" ), + build( + "src/index.ts", + "lib/bundle.cjs.js", + "cjs" + ), build( "src/tests/main.ts", - "lib/tests/bundle.js", + "lib/tests/bundle.esm.js", + "esm" + ), + build( + "src/tests/main.ts", + "lib/tests/bundle.cjs.js", "cjs" - ) + ), ]; diff --git a/src/tests/index.ts b/src/tests/index.ts deleted file mode 100644 index 20cde4f..0000000 --- a/src/tests/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -describe("compiled by tsc", function () { - require("./main"); -}); - -describe("bundled by rollup", function () { - require("./bundle"); -}); diff --git a/test.js b/test.js new file mode 100644 index 0000000..6c909ce --- /dev/null +++ b/test.js @@ -0,0 +1,8 @@ +describe("Compiled to CommonJS", function () { + require("./lib/tests/bundle.cjs.js"); +}); + +describe("Compiled to ECMAScript module syntax", function () { + require("reify/node"); // Enable ESM syntax. + require("./lib/tests/bundle.esm.js"); +}); diff --git a/tsconfig.rollup.json b/tsconfig.rollup.json index 6ca3e29..02df473 100644 --- a/tsconfig.rollup.json +++ b/tsconfig.rollup.json @@ -1,7 +1,8 @@ { - "extends": "tsconfig.json", + "extends": "./tsconfig.json", "compilerOptions": { "module": "es2015", + "declaration": false, "sourceMap": true, }, }