diff options
author | Michał Gołębiowski-Owczarek <m.goleb@gmail.com> | 2023-07-10 19:14:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-10 19:14:08 +0200 |
commit | 8be4c0e4f89d6c8f780e5937a0534921d8c7815e (patch) | |
tree | 55d87bcc040dfea54ec5c77ba86d942aa9526916 /dist-module | |
parent | 65b85031fb5688361c077bc04e641e4b502671e1 (diff) | |
download | jquery-8be4c0e4f89d6c8f780e5937a0534921d8c7815e.tar.gz jquery-8be4c0e4f89d6c8f780e5937a0534921d8c7815e.zip |
Build: Add `exports` to package.json, export slim & esm builds
Summary of the changes:
* define the `exports` field in `package.json`; `jQuery` & `$` are also
exported as named exports in ESM builds now
* declare `"type": "module"` globally except for the `build` folder
* add the `--esm` option to `grunt custom`, generating jQuery as an ECMAScript
module into the `dist-module` folder
* expand `node_smoke_tests` to test the slim & ESM builds and their various
combinations; also, test both jQuery loaded via a path to the file as well
as from module specifiers that should be parsed via the `exports` feature
* add details about ESM usage to the release package README
* run `compare_size` on all built minified files; don't run it anymore on
unminified files where they don't provide lots of value
* remove the remove_map_comment task; SWC doesn't insert the
`//# sourceMappingURL=` pragma by default so there's nothing to strip
Fixes gh-4592
Closes gh-5255
Diffstat (limited to 'dist-module')
-rw-r--r-- | dist-module/.eslintrc.json | 45 | ||||
-rw-r--r-- | dist-module/jquery.node-module-wrapper.js | 4 | ||||
-rw-r--r-- | dist-module/jquery.node-module-wrapper.slim.js | 4 | ||||
-rw-r--r-- | dist-module/package.json | 3 |
4 files changed, 56 insertions, 0 deletions
diff --git a/dist-module/.eslintrc.json b/dist-module/.eslintrc.json new file mode 100644 index 000000000..33335abd8 --- /dev/null +++ b/dist-module/.eslintrc.json @@ -0,0 +1,45 @@ +{ + "root": true, + + "parserOptions": { + "ecmaVersion": 2015, + "sourceType": "module" + }, + + "globals": { + "define": false, + "Symbol": false + }, + + "overrides": [ + { + "files": "jquery{,.slim}.module.min.js", + + "parserOptions": { + "ecmaVersion": 2015, + "sourceType": "module" + } + }, + + { + "files": "jquery{,.slim}.module.js", + "extends": "../.eslintrc-browser.json", + + "parserOptions": { + "ecmaVersion": 2015, + "sourceType": "module" + }, + + "rules": { + + // That is okay for the built version + "no-multiple-empty-lines": "off", + + // When custom compilation is used, the version string + // can get large. Accept that in the built version. + "max-len": "off", + "one-var": "off" + } + } + ] +} diff --git a/dist-module/jquery.node-module-wrapper.js b/dist-module/jquery.node-module-wrapper.js new file mode 100644 index 000000000..bda9eb3d7 --- /dev/null +++ b/dist-module/jquery.node-module-wrapper.js @@ -0,0 +1,4 @@ +import jQuery from "../dist/jquery.js"; +const $ = jQuery; +export { jQuery, $ }; +export default jQuery; diff --git a/dist-module/jquery.node-module-wrapper.slim.js b/dist-module/jquery.node-module-wrapper.slim.js new file mode 100644 index 000000000..900f32fc2 --- /dev/null +++ b/dist-module/jquery.node-module-wrapper.slim.js @@ -0,0 +1,4 @@ +import jQuery from "../dist/jquery.slim.js"; +const $ = jQuery; +export { jQuery, $ }; +export default jQuery; diff --git a/dist-module/package.json b/dist-module/package.json new file mode 100644 index 000000000..3dbc1ca59 --- /dev/null +++ b/dist-module/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} |