Files
jquery/src/.eslintrc.json
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

103 lines
2.4 KiB
JSON

{
"root": true,
"extends": "../.eslintrc-browser.json",
"parserOptions": {
"ecmaVersion": 2015,
"sourceType": "module"
},
"plugins": [ "import" ],
"rules": {
"import/extensions": [ "error", "always" ],
"import/no-cycle": "error",
"import/no-unused-modules": [ "error", {
"unusedExports": true,
// When run via WebStorm, the root path against which these paths
// are resolved is the path where this ESLint config file lies,
// i.e. `src`. When run via the command line, it's usually the root
// folder of the jQuery repository. This pattern intends to catch both.
// Note that we cannot specify two patterns here:
// [ "src/*.js", "*.js" ]
// as they're analyzed individually and the rule crashes if a pattern
// cannot be matched.
"ignoreExports": [ "{src/,}*.js" ]
} ],
"indent": [ "error", "tab", {
"outerIIFEBody": 0
} ]
},
"overrides": [
{
"files": "wrapper.js",
"parserOptions": {
"ecmaVersion": 5,
"sourceType": "script"
},
"rules": {
"no-unused-vars": "off",
"indent": [ "error", "tab", {
// Unlike other codes, "wrapper.js" is implemented in UMD.
// So it required a specific exception for jQuery's UMD
// Code Style. This makes that indentation check is not
// performed for 1 depth of outer FunctionExpressions
"ignoredNodes": [
"Program > ExpressionStatement > CallExpression > :last-child > *"
]
} ]
},
"globals": {
"jQuery": false,
"module": true
}
},
{
"files": "wrapper-esm.js",
"parserOptions": {
"ecmaVersion": 2015,
"sourceType": "module"
},
"globals": {
"jQuery": false
},
"rules": {
"no-unused-vars": "off",
"indent": [ "error", "tab", {
// Unlike other codes, "wrapper.js" is implemented in UMD.
// So it required a specific exception for jQuery's UMD
// Code Style. This makes that indentation check is not
// performed for 1 depth of outer FunctionExpressions
"ignoredNodes": [
"Program > FunctionDeclaration > *"
]
} ],
"import/no-unused-modules": "off"
}
},
{
"files": "exports/amd.js",
"globals": {
"define": false
}
},
{
"files": "core.js",
"globals": {
// Defining Symbol globally would create a danger of using
// it unguarded in another place, it seems safer to define
// it only for this module.
"Symbol": false
}
}
]
}