diff --git a/packages/babel-plugin-jsx/babel.config.js b/packages/babel-plugin-jsx/babel.config.js index 36a9dbe..1b0f464 100644 --- a/packages/babel-plugin-jsx/babel.config.js +++ b/packages/babel-plugin-jsx/babel.config.js @@ -5,6 +5,14 @@ module.exports = { ], plugins: [ /* eslint-disable-next-line global-require */ - [require('./dist/index.js'), { optimize: true, isCustomElement: (tag) => /^x-/.test(tag) }], + [ + !process.env.MODE + ? require('./dist/index.js') + : require('./dist/vue-jsx.min.js'), + { + optimize: true, + isCustomElement: (tag) => /^x-/.test(tag) + }, + ], ], }; diff --git a/packages/babel-plugin-jsx/package.json b/packages/babel-plugin-jsx/package.json index 057f2fc..17a11f2 100644 --- a/packages/babel-plugin-jsx/package.json +++ b/packages/babel-plugin-jsx/package.json @@ -6,14 +6,15 @@ "homepage": "https://github.com/vuejs/jsx-next/tree/dev/packages/babel-plugin-jsx#readme", "license": "MIT", "main": "dist/index.js", + "unpkg": "dist/vue-jsx.min.js", "repository": { "type": "git", "url": "git+https://github.com/vuejs/jsx-next.git" }, "scripts": { - "build": "tsc", + "build": "rm -rf dist && tsc && rollup -c rollup.config.js", "lint": "eslint 'src/*.ts'", - "test": "yarn build && jest --coverage", + "test": "yarn build && jest --coverage && jest --clearCache && MODE=umd jest --coverage", "prepublishOnly": "yarn build" }, "bugs": { @@ -42,8 +43,11 @@ "@typescript-eslint/parser": "^4.0.1", "@vue/compiler-dom": "3.0.5", "@vue/test-utils": "2.0.0-beta.2", + "esbuild": "^0.12.9", "jest": "^26.0.1", "regenerator-runtime": "^0.13.5", + "rollup": "^2.52.2", + "rollup-plugin-esbuild": "^4.5.0", "ts-jest": "^26.1.3", "typescript": "^4.2.3", "vue": "3.0.7" diff --git a/packages/babel-plugin-jsx/rollup.config.js b/packages/babel-plugin-jsx/rollup.config.js new file mode 100644 index 0000000..dba63bd --- /dev/null +++ b/packages/babel-plugin-jsx/rollup.config.js @@ -0,0 +1,17 @@ +import esbuild from 'rollup-plugin-esbuild' + +export default { + input: 'src/index.ts', + output: [ + { + file: `dist/vue-jsx.min.js`, + format: 'umd', + name: `vue-jsx`, + }, + ], + plugins: [ + esbuild({ + minify: true, + }), + ], +} diff --git a/yarn.lock b/yarn.lock index 056c9c2..3887c0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2032,6 +2032,14 @@ "@octokit/openapi-types" "^2.0.0" "@types/node" ">= 8" +"@rollup/pluginutils@^4.1.0": + version "4.1.0" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838" + integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + "@sinonjs/commons@^1.7.0": version "1.8.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" @@ -4713,6 +4721,11 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +esbuild@^0.12.9: + version "0.12.9" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.12.9.tgz#bed4e7087c286cd81d975631f77d47feb1660070" + integrity sha512-MWRhAbMOJ9RJygCrt778rz/qNYgA4ZVj6aXnNPxFjs7PmIpb0fuB9Gmg5uWrr6n++XKwwm/RmSz6RR5JL2Ocsw== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -5397,6 +5410,11 @@ fsevents@~2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -6902,6 +6920,11 @@ jest@^26.0.1: import-local "^3.0.2" jest-cli "^26.6.3" +joycon@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf" + integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -7011,6 +7034,11 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +jsonc-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -8537,6 +8565,11 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.2.2: + version "2.3.0" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -9327,6 +9360,22 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rollup-plugin-esbuild@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.5.0.tgz#0fbcb6d2d651d87dc540c4fc3b2db669f48da1f0" + integrity sha512-ieUd3AoYWsN6Tfp0LBNnC+QpdhKjDEaH4NK3ghuEXOH56/7TAtD+hMbD9vSWZgsGSbaqCkrn4j6PaUj1vOSt1g== + dependencies: + "@rollup/pluginutils" "^4.1.0" + joycon "^3.0.1" + jsonc-parser "^3.0.0" + +rollup@^2.52.2: + version "2.52.2" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.52.2.tgz#a7e90d10ddae3e8472c2857bd9f44b09ef34a47a" + integrity sha512-4RlFC3k2BIHlUsJ9mGd8OO+9Lm2eDF5P7+6DNQOp5sx+7N/1tFM01kELfbxlMX3MxT6owvLB1ln4S3QvvQlbUA== + optionalDependencies: + fsevents "~2.3.2" + rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"