diff --git a/package-lock.json b/package-lock.json index 399394a5..376124da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11771,6 +11771,15 @@ } } }, + "rollup-plugin-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-polyfill/-/rollup-plugin-polyfill-3.0.0.tgz", + "integrity": "sha512-LfJ1OR/wJrJdNDVNrdhVm7CgENfaNoQlFYMaQ0vlQH3zO+BMVrBMWDX9k6HVcr9gHsKbthrkiBzWRfFU9fr0hQ==", + "dev": true, + "requires": { + "magic-string": "^0.25.3" + } + }, "rollup-plugin-sourcemaps": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.4.2.tgz", diff --git a/package.json b/package.json index 5d3b2c30..098c182d 100644 --- a/package.json +++ b/package.json @@ -28,13 +28,14 @@ "rollup-plugin-commonjs": "^10.0.1", "rollup-plugin-eslint": "^7.0.0", "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-polyfill": "^3.0.0", "rollup-plugin-sourcemaps": "^0.4.2", "rollup-plugin-terser": "^5.1.1", "sinon": "^7.3.2" }, "engines": { "npm": ">=4.0.0", - "node": ">=6.0.0" + "node": ">=8.0.0" }, "scripts": { "postinstall": "lerna bootstrap --hoist --nohoist=core-js --no-ci", diff --git a/packages/imask/.babelrc.js b/packages/imask/.babelrc.js index 5c2079ce..bf226ddf 100644 --- a/packages/imask/.babelrc.js +++ b/packages/imask/.babelrc.js @@ -1,5 +1,4 @@ const presetOptions = { - modules: false, useBuiltIns: 'entry', corejs: '3', }; diff --git a/packages/imask/package.json b/packages/imask/package.json index 285bccfa..738d26f1 100644 --- a/packages/imask/package.json +++ b/packages/imask/package.json @@ -7,6 +7,7 @@ "homepage": "https://imask.js.org/", "description": "vanilla javascript input mask", "main": "dist/imask.js", + "module": "dist/imask.esm.js", "repository": "https://github.com/uNmAnNeR/imaskjs", "types": "index.d.ts", "engines": { @@ -16,13 +17,10 @@ "test": "cross-env NODE_ENV=test nyc mocha --exit --recursive", "pretest": "flow check", "watch": "rollup -c -w", - "build": "npm run build:dev && npm run build:prod", - "build:dev": "npm run build:dev:es && npm run build:dev:umd", - "build:prod": "npm run build:prod:es && npm run build:prod:umd", - "build:dev:es": "cross-env BABEL_ENV=es rollup -c", - "build:dev:umd": "rollup -c", - "build:prod:es": "cross-env NODE_ENV=production BABEL_ENV=es rollup -c", - "build:prod:umd": "cross-env NODE_ENV=production rollup -c", + "build": "npm run build:umd && npm run build:es && npm run build:esm", + "build:umd": "rollup -c", + "build:es": "cross-env BABEL_ENV=es rollup -c", + "build:esm": "cross-env BABEL_ENV=esm rollup -c", "flow": "flow", "coveralls": "nyc report --reporter=text-lcov | coveralls" }, diff --git a/packages/imask/rollup.config.js b/packages/imask/rollup.config.js index 7febb035..3afb9c05 100644 --- a/packages/imask/rollup.config.js +++ b/packages/imask/rollup.config.js @@ -3,24 +3,19 @@ import { terser } from 'rollup-plugin-terser'; import { eslint } from 'rollup-plugin-eslint'; import resolve from 'rollup-plugin-node-resolve'; import commonjs from 'rollup-plugin-commonjs'; +import polyfill from 'rollup-plugin-polyfill'; -const isProd = process.env.NODE_ENV === 'production'; const format = process.env.BABEL_ENV || 'umd'; -const isES = format === 'es'; -const file = 'dist/imask' + - (format !== 'umd' ? '.' + format : '') + - (isProd ? '.min' : '') + - '.js'; +const isES = format.indexOf('es') === 0; +const basePath = 'dist/imask' + (format !== 'umd' ? '.' + format : ''); -const input = isES ? 'src/imask.js' : 'src/imask.shim.js'; - -export default { - input, +export default [false, true].map(min => ({ + input: 'src/imask.js', output: { - file, + file: `${basePath}${min ? '.min' : ''}.js`, format, name: 'IMask', sourcemap: true, @@ -30,6 +25,7 @@ export default { resolve(), babel(), !isES && commonjs(), - isProd && terser() - ] -} + !isES && polyfill(['./polyfills.js']), + min && terser(), + ], +})); diff --git a/packages/imask/src/imask.shim.js b/packages/imask/src/imask.shim.js deleted file mode 100644 index b53b8e87..00000000 --- a/packages/imask/src/imask.shim.js +++ /dev/null @@ -1,3 +0,0 @@ -import './polyfills.js'; -import IMask from './imask.js'; -export default IMask;