jquery/test/node_smoke_tests/commonjs/lib/jquery-module-specifier.cjs
Michał Gołębiowski-Owczarek 8be4c0e4f8
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
2023-07-10 19:14:08 +02:00

23 lines
750 B
JavaScript

"use strict";
const path = require( "node:path" );
const ROOT_DIR = path.resolve( __dirname, "..", "..", "..", ".." );
// If `jQueryModuleSpecifier` is a real relative path, make it absolute
// to make sure it resolves to the same file inside utils from
// a subdirectory. Otherwise, leave it as-is as we may be testing `exports`
// so we need input as-is.
const getJQueryModuleSpecifier = () => {
const jQueryModuleInputSpecifier = process.argv[ 2 ];
if ( !jQueryModuleInputSpecifier ) {
throw new Error( "jQuery module specifier not passed" );
}
return jQueryModuleInputSpecifier.startsWith( "." ) ?
path.resolve( ROOT_DIR, jQueryModuleInputSpecifier ) :
jQueryModuleInputSpecifier;
};
module.exports = { getJQueryModuleSpecifier };