aboutsummaryrefslogtreecommitdiffstats
path: root/dist-module
diff options
context:
space:
mode:
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>2023-07-10 19:14:08 +0200
committerGitHub <noreply@github.com>2023-07-10 19:14:08 +0200
commit8be4c0e4f89d6c8f780e5937a0534921d8c7815e (patch)
tree55d87bcc040dfea54ec5c77ba86d942aa9526916 /dist-module
parent65b85031fb5688361c077bc04e641e4b502671e1 (diff)
downloadjquery-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.json45
-rw-r--r--dist-module/jquery.node-module-wrapper.js4
-rw-r--r--dist-module/jquery.node-module-wrapper.slim.js4
-rw-r--r--dist-module/package.json3
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"
+}