diff --git a/.changeset/rare-shirts-check.md b/.changeset/rare-shirts-check.md new file mode 100644 index 000000000..ae9de5c0e --- /dev/null +++ b/.changeset/rare-shirts-check.md @@ -0,0 +1,5 @@ +--- +'rax-compat': minor +--- + +feat: export es2021 output diff --git a/.eslintignore b/.eslintignore index 93f43288e..b95cb05b8 100644 --- a/.eslintignore +++ b/.eslintignore @@ -14,6 +14,7 @@ coverage/ /packages/*/lib/ /packages/*/esm/ /packages/*/es2017/ +/packages/*/es2021/ **/tests/libs/*.js # 忽略第三方包 diff --git a/packages/rax-compat/.gitignore b/packages/rax-compat/.gitignore index eb97fce6b..7f2fa9cfe 100644 --- a/packages/rax-compat/.gitignore +++ b/packages/rax-compat/.gitignore @@ -1,3 +1,4 @@ es2017/ +es2021/ dist/ esm/ diff --git a/packages/rax-compat/build.config.mts b/packages/rax-compat/build.config.mts index 0bc2d21ea..e0e61e153 100644 --- a/packages/rax-compat/build.config.mts +++ b/packages/rax-compat/build.config.mts @@ -5,4 +5,7 @@ export default defineConfig({ formats: ['esm', 'es2017'], }, sourceMaps: process.env.NODE_ENV === 'development', + plugins: [ + './plugin.mjs', + ], }); diff --git a/packages/rax-compat/package.json b/packages/rax-compat/package.json index 9c1ae0d9f..add002756 100644 --- a/packages/rax-compat/package.json +++ b/packages/rax-compat/package.json @@ -4,28 +4,78 @@ "description": "Rax compatible mode, running rax project on the react runtime.", "files": [ "esm", - "cjs", "es2017", - "dist", - "build" + "es2021" ], "type": "module", "main": "esm/index.js", "module": "esm/index.js", "exports": { - ".": "./esm/index.js", - "./children": "./esm/children.js", - "./clone-element": "./esm/clone-element.js", - "./create-class": "./esm/create-class.js", - "./create-factory": "./esm/create-factory.js", - "./create-portal": "./esm/create-portal.js", - "./find-dom-node": "./esm/find-dom-node.js", - "./is-valid-element": "./esm/is-valid-element.js", - "./unmount-component-at-node": "./esm/unmount-component-at-node.js", - "./runtime": "./esm/runtime/index.js", - "./runtime/jsx-dev-runtime": "./esm/runtime/jsx-dev-runtime.js", - "./runtime/jsx-runtime": "./esm/runtime/jsx-runtime.js", - "./es2017": "./es2017/index.js" + ".": { + "es2021": "./es2021/index.js", + "es2017": "./es2017/index.js", + "default": "./esm/index.js" + }, + "./children": { + "es2021": "./es2021/children.js", + "es2017": "./es2017/children.js", + "default": "./esm/children.js" + }, + "./clone-element": { + "es2021": "./es2021/clone-element.js", + "es2017": "./es2017/clone-element.js", + "default": "./esm/clone-element.js" + }, + "./create-class": { + "es2021": "./es2021/create-class.js", + "es2017": "./es2017/create-class.js", + "default": "./esm/create-class.js" + }, + "./create-factory": { + "es2021": "./es2021/create-factory.js", + "es2017": "./es2017/create-factory.js", + "default": "./esm/create-factory.js" + }, + "./create-portal": { + "es2021": "./es2021/create-portal.js", + "es2017": "./es2017/create-portal.js", + "default": "./esm/create-portal.js" + }, + "./find-dom-node": { + "es2021": "./es2021/find-dom-node.js", + "es2017": "./es2017/find-dom-node.js", + "default": "./esm/find-dom-node.js" + }, + "./is-valid-element": { + "es2021": "./es2021/is-valid-element.js", + "es2017": "./es2017/is-valid-element.js", + "default": "./esm/is-valid-element.js" + }, + "./unmount-component-at-node": { + "es2021": "./es2021/unmount-component-at-node.js", + "es2017": "./es2017/unmount-component-at-node.js", + "default": "./esm/unmount-component-at-node.js" + }, + "./runtime": { + "es2021": "./es2021/runtime/index.js", + "es2017": "./es2017/runtime/index.js", + "default": "./esm/runtime/index.js" + }, + "./runtime/jsx-dev-runtime": { + "es2021": "./es2021/runtime/jsx-dev-runtime.js", + "es2017": "./es2017/runtime/jsx-dev-runtime.js", + "default": "./esm/runtime/jsx-dev-runtime.js" + }, + "./runtime/jsx-runtime": { + "es2021": "./es2021/runtime/jsx-runtime.js", + "es2017": "./es2017/runtime/jsx-runtime.js", + "default": "./esm/runtime/jsx-runtime.js" + }, + "./es2017": { + "es2021": "./es2021/index.js", + "es2017": "./es2017/index.js", + "default": "./esm/index.js" + } }, "sideEffects": [ "dist/*", @@ -77,4 +127,4 @@ "author": "ice-admin@alibaba-inc.com", "license": "MIT", "homepage": "https://github.com/alibaba/ice#readme" -} \ No newline at end of file +} diff --git a/packages/rax-compat/plugin.mjs b/packages/rax-compat/plugin.mjs new file mode 100644 index 000000000..32fd9379a --- /dev/null +++ b/packages/rax-compat/plugin.mjs @@ -0,0 +1,18 @@ +/** + * @type {import('@ice/pkg').Plugin} + */ +const plugin = (api) => { + api.registerTask('transform-es2021', { + type: 'transform', + formats: ['es2021'], + outputDir: 'es2021', + modifySwcCompileOptions: (options => { + options.jsc.target = 'es2021'; + return options; + }), + entry: 'src/index', + sourcemap: false, + }); +}; + +export default plugin;