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 /README.md | |
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 'README.md')
-rw-r--r-- | README.md | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -111,7 +111,7 @@ The build process shows a message for each dependent module it excludes or inclu ##### AMD name -As an option, you can set the module name for jQuery's AMD definition. By default, it is set to "jquery", which plays nicely with plugins and third-party libraries, but there may be cases where you'd like to change this. Simply set the `"amd"` option: +As an option, you can set the module name for jQuery's AMD definition. By default, it is set to "jquery", which plays nicely with plugins and third-party libraries, but there may be cases where you'd like to change this. Simply pass it to the `--amd` parameter: ```bash grunt custom --amd="custom-name" @@ -123,6 +123,30 @@ Or, to define anonymously, set the name to an empty string. grunt custom --amd="" ``` +##### File name + +The default name for the built jQuery file is `jquery.js`; it is placed under the `dist/` directory. It's possible to change the file name using the `--filename` parameter: + +```bash +grunt custom:slim --filename="jquery.slim.js" +``` + +This would create a slim version of jQuery and place it under `dist/jquery.slim.js`. In fact, this is exactly the command we use to generate the slim jQuery during the release process. + +##### ECMAScript Module (ESM) mode + +By default, jQuery generates a regular script JavaScript file. You can also generate an ECMAScript module exporting `jQuery` as the default export using the `--esm` parameter: + +```bash +grunt custom --esm +``` + +The default is `script` but you can also pass it explicitly via `--no-esm`: + +```bash +grunt custom --no-esm +``` + #### Custom Build Examples To create a custom build, first check out the version: |