From 193ea2540fe4e54621c6852db3b02497ed55a669 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Wed, 29 Apr 2020 17:47:40 +0200 Subject: [PATCH] chore: add `exports` field to all packages --- CHANGELOG.md | 1 + e2e/custom-resolver/resolver.js | 6 +----- packages/babel-jest/package.json | 8 ++++++-- packages/babel-plugin-jest-hoist/package.json | 8 ++++++-- packages/babel-preset-jest/package.json | 6 +++++- packages/diff-sequences/package.json | 8 ++++++-- packages/expect/package.json | 9 +++++++-- packages/jest-changed-files/package.json | 8 ++++++-- packages/jest-circus/package.json | 9 +++++++-- packages/jest-cli/package.json | 9 +++++++-- packages/jest-config/package.json | 8 ++++++-- packages/jest-console/package.json | 8 ++++++-- packages/jest-core/package.json | 8 ++++++-- .../jest-create-cache-key-function/package.json | 8 ++++++-- packages/jest-diff/package.json | 8 ++++++-- packages/jest-docblock/package.json | 8 ++++++-- packages/jest-each/package.json | 8 ++++++-- packages/jest-environment-jsdom/package.json | 8 ++++++-- packages/jest-environment-node/package.json | 8 ++++++-- packages/jest-environment/package.json | 8 ++++++-- packages/jest-fake-timers/package.json | 8 ++++++-- packages/jest-get-type/package.json | 8 ++++++-- packages/jest-globals/package.json | 8 ++++++-- packages/jest-haste-map/package.json | 8 ++++++-- packages/jest-jasmine2/package.json | 8 ++++++-- packages/jest-leak-detector/package.json | 8 ++++++-- packages/jest-matcher-utils/package.json | 8 ++++++-- packages/jest-message-util/package.json | 8 ++++++-- packages/jest-mock/package.json | 8 ++++++-- packages/jest-phabricator/package.json | 8 ++++++-- packages/jest-regex-util/package.json | 8 ++++++-- packages/jest-repl/package.json | 9 +++++++-- packages/jest-reporters/package.json | 8 ++++++-- packages/jest-resolve-dependencies/package.json | 8 ++++++-- packages/jest-resolve/package.json | 8 ++++++-- packages/jest-runner/package.json | 8 ++++++-- packages/jest-runtime/package.json | 9 +++++++-- packages/jest-serializer/package.json | 8 ++++++-- packages/jest-snapshot/package.json | 8 ++++++-- packages/jest-snapshot/src/printSnapshot.ts | 1 + packages/jest-source-map/package.json | 8 ++++++-- packages/jest-test-result/package.json | 8 ++++++-- packages/jest-test-sequencer/package.json | 8 ++++++-- packages/jest-transform/package.json | 8 ++++++-- packages/jest-types/package.json | 8 ++++++-- packages/jest-util/package.json | 8 ++++++-- packages/jest-validate/package.json | 8 ++++++-- packages/jest-watcher/package.json | 8 ++++++-- packages/jest-worker/package.json | 8 ++++++-- packages/jest/package.json | 9 +++++++-- packages/pretty-format/package.json | 8 ++++++-- packages/test-utils/package.json | 8 ++++++-- scripts/buildUtils.js | 17 +++++++++++++++++ 53 files changed, 319 insertions(+), 102 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef1f8926045a..8dbfc9c755e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ ### Chore & Maintenance - `[*]` [**BREAKING**] Only support Node LTS releases and Node 15 ([#10685](https://github.com/facebook/jest/pull/10685)) +- `[*]` [**BREAKING**] Add `exports` field to all `package.json`s ([#9921](https://github.com/facebook/jest/pull/9921)) ### Performance diff --git a/e2e/custom-resolver/resolver.js b/e2e/custom-resolver/resolver.js index 13f64c0d2a4a..c84e87938a14 100644 --- a/e2e/custom-resolver/resolver.js +++ b/e2e/custom-resolver/resolver.js @@ -5,10 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -const { - default: defaultResolver, -} = require('jest-resolve/build/defaultResolver'); - const exportedModules = new Map([ ['foo', 'foo'], ['bar', 'bar'], @@ -20,6 +16,6 @@ module.exports = (name, options) => { if (resolution) { return `${__dirname}/${resolution}.js`; } else { - return defaultResolver(name, options); + return options.defaultResolver(name, options); } }; diff --git a/packages/babel-jest/package.json b/packages/babel-jest/package.json index ff5604c2dd66..4fd3eadd568d 100644 --- a/packages/babel-jest/package.json +++ b/packages/babel-jest/package.json @@ -8,8 +8,12 @@ "directory": "packages/babel-jest" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/transform": "^26.6.2", "@jest/types": "^26.6.2", diff --git a/packages/babel-plugin-jest-hoist/package.json b/packages/babel-plugin-jest-hoist/package.json index a86d19c17863..da0cdbf21f89 100644 --- a/packages/babel-plugin-jest-hoist/package.json +++ b/packages/babel-plugin-jest-hoist/package.json @@ -10,8 +10,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", diff --git a/packages/babel-preset-jest/package.json b/packages/babel-preset-jest/package.json index 144c4c4ec81d..17fba49d7b3d 100644 --- a/packages/babel-preset-jest/package.json +++ b/packages/babel-preset-jest/package.json @@ -7,7 +7,11 @@ "directory": "packages/babel-preset-jest" }, "license": "MIT", - "main": "index.js", + "main": "./index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, "dependencies": { "babel-plugin-jest-hoist": "^26.6.2", "babel-preset-current-node-syntax": "^1.0.0" diff --git a/packages/diff-sequences/package.json b/packages/diff-sequences/package.json index 8e4e78c2b1ae..fae2479b7173 100644 --- a/packages/diff-sequences/package.json +++ b/packages/diff-sequences/package.json @@ -18,8 +18,12 @@ "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "scripts": { "perf": "node --expose-gc perf/index.js" }, diff --git a/packages/expect/package.json b/packages/expect/package.json index 82f5c4bff276..151e492ee755 100644 --- a/packages/expect/package.json +++ b/packages/expect/package.json @@ -7,8 +7,13 @@ "directory": "packages/expect" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json", + "./build/utils": "./build/utils.js" + }, "dependencies": { "@jest/types": "^26.6.2", "ansi-styles": "^4.0.0", diff --git a/packages/jest-changed-files/package.json b/packages/jest-changed-files/package.json index 64547d437419..d5a369851bae 100644 --- a/packages/jest-changed-files/package.json +++ b/packages/jest-changed-files/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-changed-files" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "execa": "^4.0.0", diff --git a/packages/jest-circus/package.json b/packages/jest-circus/package.json index a6c2b2f28f14..ebadd9cf7770 100644 --- a/packages/jest-circus/package.json +++ b/packages/jest-circus/package.json @@ -7,8 +7,13 @@ "directory": "packages/jest-circus" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json", + "./runner": "./runner.js" + }, "dependencies": { "@babel/traverse": "^7.1.0", "@jest/environment": "^26.6.2", diff --git a/packages/jest-cli/package.json b/packages/jest-cli/package.json index 9b72edab5268..dac4e81aba0b 100644 --- a/packages/jest-cli/package.json +++ b/packages/jest-cli/package.json @@ -2,8 +2,13 @@ "name": "jest-cli", "description": "Delightful JavaScript Testing.", "version": "26.6.3", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json", + "./bin/jest": "./bin/jest.js" + }, "dependencies": { "@jest/core": "^26.6.3", "@jest/test-result": "^26.6.2", diff --git a/packages/jest-config/package.json b/packages/jest-config/package.json index d0037022bcdf..91d7ca643b5a 100644 --- a/packages/jest-config/package.json +++ b/packages/jest-config/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-config" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "peerDependencies": { "ts-node": ">=9.0.0" }, diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json index 7b22bba112be..51d1043945a2 100644 --- a/packages/jest-console/package.json +++ b/packages/jest-console/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-console" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "@types/node": "*", diff --git a/packages/jest-core/package.json b/packages/jest-core/package.json index 3800a1aef85c..4b9e0f1d16f1 100644 --- a/packages/jest-core/package.json +++ b/packages/jest-core/package.json @@ -2,8 +2,12 @@ "name": "@jest/core", "description": "Delightful JavaScript Testing.", "version": "26.6.3", - "main": "build/jest.js", - "types": "build/jest.d.ts", + "main": "./build/jest.js", + "types": "./build/jest.d.ts", + "exports": { + ".": "./build/jest.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/console": "^26.6.2", "@jest/reporters": "^26.6.2", diff --git a/packages/jest-create-cache-key-function/package.json b/packages/jest-create-cache-key-function/package.json index 574497244384..fc863b3506c3 100644 --- a/packages/jest-create-cache-key-function/package.json +++ b/packages/jest-create-cache-key-function/package.json @@ -16,8 +16,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "publishConfig": { "access": "public" } diff --git a/packages/jest-diff/package.json b/packages/jest-diff/package.json index 3cef10abd6ac..c91b487be7d2 100644 --- a/packages/jest-diff/package.json +++ b/packages/jest-diff/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-diff" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^26.6.2", diff --git a/packages/jest-docblock/package.json b/packages/jest-docblock/package.json index 3b4fb6b80048..3e769bbe905d 100644 --- a/packages/jest-docblock/package.json +++ b/packages/jest-docblock/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-docblock" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "detect-newline": "^3.0.0" }, diff --git a/packages/jest-each/package.json b/packages/jest-each/package.json index 7060657c6175..603c24285ffe 100644 --- a/packages/jest-each/package.json +++ b/packages/jest-each/package.json @@ -2,8 +2,12 @@ "name": "jest-each", "version": "26.6.2", "description": "Parameterised tests for Jest", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", diff --git a/packages/jest-environment-jsdom/package.json b/packages/jest-environment-jsdom/package.json index 57b6db9f0a42..50b3fffc81e4 100644 --- a/packages/jest-environment-jsdom/package.json +++ b/packages/jest-environment-jsdom/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-environment-jsdom" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/environment": "^26.6.2", "@jest/fake-timers": "^26.6.2", diff --git a/packages/jest-environment-node/package.json b/packages/jest-environment-node/package.json index 6c8389649a5b..fc58d5eb629b 100644 --- a/packages/jest-environment-node/package.json +++ b/packages/jest-environment-node/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-environment-node" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/environment": "^26.6.2", "@jest/fake-timers": "^26.6.2", diff --git a/packages/jest-environment/package.json b/packages/jest-environment/package.json index d4da5a94de75..a6ad9a74f3f3 100644 --- a/packages/jest-environment/package.json +++ b/packages/jest-environment/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-environment" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/fake-timers": "^26.6.2", "@jest/types": "^26.6.2", diff --git a/packages/jest-fake-timers/package.json b/packages/jest-fake-timers/package.json index 104edabe160d..ae447269bfb8 100644 --- a/packages/jest-fake-timers/package.json +++ b/packages/jest-fake-timers/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-fake-timers" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "@sinonjs/fake-timers": "^6.0.1", diff --git a/packages/jest-get-type/package.json b/packages/jest-get-type/package.json index 26f8f95ce0df..0d3b7ad6617d 100644 --- a/packages/jest-get-type/package.json +++ b/packages/jest-get-type/package.json @@ -11,8 +11,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "publishConfig": { "access": "public" } diff --git a/packages/jest-globals/package.json b/packages/jest-globals/package.json index 0b32e5233d56..547ee19167cd 100644 --- a/packages/jest-globals/package.json +++ b/packages/jest-globals/package.json @@ -10,8 +10,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/environment": "^26.6.2", "@jest/types": "^26.6.2", diff --git a/packages/jest-haste-map/package.json b/packages/jest-haste-map/package.json index 700b51d988d9..b22e18f50ef8 100644 --- a/packages/jest-haste-map/package.json +++ b/packages/jest-haste-map/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-haste-map" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "@types/graceful-fs": "^4.1.2", diff --git a/packages/jest-jasmine2/package.json b/packages/jest-jasmine2/package.json index e78192cd143e..06d054c189e0 100644 --- a/packages/jest-jasmine2/package.json +++ b/packages/jest-jasmine2/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-jasmine2" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@babel/traverse": "^7.1.0", "@jest/environment": "^26.6.2", diff --git a/packages/jest-leak-detector/package.json b/packages/jest-leak-detector/package.json index fb8d11c46c83..0571872dfd04 100644 --- a/packages/jest-leak-detector/package.json +++ b/packages/jest-leak-detector/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-leak-detector" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "jest-get-type": "^26.3.0", "pretty-format": "^26.6.2" diff --git a/packages/jest-matcher-utils/package.json b/packages/jest-matcher-utils/package.json index 9d980eb68532..5deb3046deef 100644 --- a/packages/jest-matcher-utils/package.json +++ b/packages/jest-matcher-utils/package.json @@ -11,8 +11,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^26.6.2", diff --git a/packages/jest-message-util/package.json b/packages/jest-message-util/package.json index 38f4244a68a6..a24d5ac5a341 100644 --- a/packages/jest-message-util/package.json +++ b/packages/jest-message-util/package.json @@ -10,8 +10,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@babel/code-frame": "^7.0.0", "@jest/types": "^26.6.2", diff --git a/packages/jest-mock/package.json b/packages/jest-mock/package.json index 03a85ad85a2e..8fc042f15d29 100644 --- a/packages/jest-mock/package.json +++ b/packages/jest-mock/package.json @@ -14,8 +14,12 @@ "@types/node": "*" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "publishConfig": { "access": "public" } diff --git a/packages/jest-phabricator/package.json b/packages/jest-phabricator/package.json index 37c57c9d671e..f61aa66552d2 100644 --- a/packages/jest-phabricator/package.json +++ b/packages/jest-phabricator/package.json @@ -6,7 +6,11 @@ "url": "https://github.com/facebook/jest.git", "directory": "packages/jest-phabricator" }, - "types": "build/index.d.ts", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/test-result": "^26.6.2" }, @@ -14,7 +18,7 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", + "main": "./build/index.js", "publishConfig": { "access": "public" } diff --git a/packages/jest-regex-util/package.json b/packages/jest-regex-util/package.json index c5d31c971ca8..4b882a4bbad8 100644 --- a/packages/jest-regex-util/package.json +++ b/packages/jest-regex-util/package.json @@ -13,8 +13,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "publishConfig": { "access": "public" } diff --git a/packages/jest-repl/package.json b/packages/jest-repl/package.json index 53abdaabbb2d..f072d53f8ee4 100644 --- a/packages/jest-repl/package.json +++ b/packages/jest-repl/package.json @@ -7,8 +7,13 @@ "directory": "packages/jest-repl" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json", + "./bin/jest-repl": "./bin/jest-repl.js" + }, "dependencies": { "@jest/transform": "^26.6.2", "@jest/types": "^26.6.2", diff --git a/packages/jest-reporters/package.json b/packages/jest-reporters/package.json index e794b79a1074..591ee08686e8 100644 --- a/packages/jest-reporters/package.json +++ b/packages/jest-reporters/package.json @@ -2,8 +2,12 @@ "name": "@jest/reporters", "description": "Jest's reporters", "version": "26.6.2", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^26.6.2", diff --git a/packages/jest-resolve-dependencies/package.json b/packages/jest-resolve-dependencies/package.json index c4da8fea37c2..d7171c06587a 100644 --- a/packages/jest-resolve-dependencies/package.json +++ b/packages/jest-resolve-dependencies/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-resolve-dependencies" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "jest-regex-util": "^26.0.0", diff --git a/packages/jest-resolve/package.json b/packages/jest-resolve/package.json index 82a3db32a713..31231554c3c5 100644 --- a/packages/jest-resolve/package.json +++ b/packages/jest-resolve/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-resolve" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "chalk": "^4.0.0", diff --git a/packages/jest-runner/package.json b/packages/jest-runner/package.json index 9558571d726d..3060883e0e22 100644 --- a/packages/jest-runner/package.json +++ b/packages/jest-runner/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-runner" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/console": "^26.6.2", "@jest/environment": "^26.6.2", diff --git a/packages/jest-runtime/package.json b/packages/jest-runtime/package.json index 803ee53ec1dc..aa575e704805 100644 --- a/packages/jest-runtime/package.json +++ b/packages/jest-runtime/package.json @@ -7,8 +7,13 @@ "directory": "packages/jest-runtime" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json", + "./bin/jest-runtime": "./bin/jest-runtime.js" + }, "dependencies": { "@jest/console": "^26.6.2", "@jest/environment": "^26.6.2", diff --git a/packages/jest-serializer/package.json b/packages/jest-serializer/package.json index ff263ed054b9..e2364ca00945 100644 --- a/packages/jest-serializer/package.json +++ b/packages/jest-serializer/package.json @@ -17,8 +17,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "publishConfig": { "access": "public" } diff --git a/packages/jest-snapshot/package.json b/packages/jest-snapshot/package.json index 070376548d93..32391133f372 100644 --- a/packages/jest-snapshot/package.json +++ b/packages/jest-snapshot/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-snapshot" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@babel/types": "^7.0.0", "@jest/types": "^26.6.2", diff --git a/packages/jest-snapshot/src/printSnapshot.ts b/packages/jest-snapshot/src/printSnapshot.ts index 2cb0732027b3..cae43b41ebf5 100644 --- a/packages/jest-snapshot/src/printSnapshot.ts +++ b/packages/jest-snapshot/src/printSnapshot.ts @@ -11,6 +11,7 @@ import chalk = require('chalk'); // Temporary hack because getObjectSubset has known limitations, // is not in the public interface of the expect package, // and the long-term goal is to use a non-serialization diff. +// Make sure to remove file from `exports` in `expect/package.json`. import {getObjectSubset} from 'expect/build/utils'; import { DIFF_DELETE, diff --git a/packages/jest-source-map/package.json b/packages/jest-source-map/package.json index 9b898c46bbd4..6b4812e68af4 100644 --- a/packages/jest-source-map/package.json +++ b/packages/jest-source-map/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-source-map" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.4", diff --git a/packages/jest-test-result/package.json b/packages/jest-test-result/package.json index dcfcdb50ace2..3b62c8900969 100644 --- a/packages/jest-test-result/package.json +++ b/packages/jest-test-result/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-test-result" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/console": "^26.6.2", "@jest/types": "^26.6.2", diff --git a/packages/jest-test-sequencer/package.json b/packages/jest-test-sequencer/package.json index b1cbb6de7141..deae0e53b020 100644 --- a/packages/jest-test-sequencer/package.json +++ b/packages/jest-test-sequencer/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-test-sequencer" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/test-result": "^26.6.2", "graceful-fs": "^4.2.4", diff --git a/packages/jest-transform/package.json b/packages/jest-transform/package.json index bf97fa921dc4..801960774590 100644 --- a/packages/jest-transform/package.json +++ b/packages/jest-transform/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-transform" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^26.6.2", diff --git a/packages/jest-types/package.json b/packages/jest-types/package.json index 12aee2ace855..80c2cc7180ad 100644 --- a/packages/jest-types/package.json +++ b/packages/jest-types/package.json @@ -10,8 +10,12 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", diff --git a/packages/jest-util/package.json b/packages/jest-util/package.json index f4cb6578ca8a..edcf6c831d6f 100644 --- a/packages/jest-util/package.json +++ b/packages/jest-util/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-util" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "@types/node": "*", diff --git a/packages/jest-validate/package.json b/packages/jest-validate/package.json index 1279e98179a9..cfa7b87b6c83 100644 --- a/packages/jest-validate/package.json +++ b/packages/jest-validate/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-validate" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "camelcase": "^6.0.0", diff --git a/packages/jest-watcher/package.json b/packages/jest-watcher/package.json index 2332124509be..550ee376fb32 100644 --- a/packages/jest-watcher/package.json +++ b/packages/jest-watcher/package.json @@ -2,8 +2,12 @@ "name": "jest-watcher", "description": "Delightful JavaScript Testing.", "version": "26.6.2", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/test-result": "^26.6.2", "@jest/types": "^26.6.2", diff --git a/packages/jest-worker/package.json b/packages/jest-worker/package.json index 0a4f4b3034a0..6a58b7250fdf 100644 --- a/packages/jest-worker/package.json +++ b/packages/jest-worker/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-worker" }, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", diff --git a/packages/jest/package.json b/packages/jest/package.json index 9dd2c3b4efb9..2732eef666f7 100644 --- a/packages/jest/package.json +++ b/packages/jest/package.json @@ -2,8 +2,13 @@ "name": "jest", "description": "Delightful JavaScript Testing.", "version": "26.6.3", - "main": "build/jest.js", - "types": "build/jest.d.ts", + "main": "./build/jest.js", + "types": "./build/jest.d.ts", + "exports": { + ".": "./build/jest.js", + "./package.json": "./package.json", + "./bin/jest": "./bin/jest.js" + }, "dependencies": { "@jest/core": "^26.6.3", "import-local": "^3.0.2", diff --git a/packages/pretty-format/package.json b/packages/pretty-format/package.json index 1f89c3ba14ce..76d5f398f8ac 100644 --- a/packages/pretty-format/package.json +++ b/packages/pretty-format/package.json @@ -8,8 +8,12 @@ }, "license": "MIT", "description": "Stringify any JavaScript value.", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "author": "James Kyle ", "dependencies": { "@jest/types": "^26.6.2", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index eca4d8375d8c..cc506d1b1c09 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -3,8 +3,12 @@ "version": "26.6.2", "private": true, "license": "MIT", - "main": "build/index.js", - "types": "build/index.d.ts", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": "./build/index.js", + "./package.json": "./package.json" + }, "dependencies": { "@jest/types": "^26.6.2", "@types/jest": "*", diff --git a/scripts/buildUtils.js b/scripts/buildUtils.js index 633549a491ca..43a5e7fec6e3 100644 --- a/scripts/buildUtils.js +++ b/scripts/buildUtils.js @@ -38,6 +38,23 @@ module.exports.getPackages = function getPackages() { nodeEngineRequirement, `Engine requirement in ${pkg.name} should match root`, ); + + assert.ok(pkg.exports, `Package ${pkg.name} is missing \`exports\` field`); + assert.deepStrictEqual( + pkg.exports, + { + '.': pkg.main, + './package.json': './package.json', + ...Object.values(pkg.bin || {}).reduce( + (mem, curr) => + Object.assign(mem, {[curr.replace(/\.js$/, '')]: curr}), + {}, + ), + ...(pkg.name === 'jest-circus' ? {'./runner': './runner.js'} : {}), + ...(pkg.name === 'expect' ? {'./build/utils': './build/utils.js'} : {}), + }, + `Package ${pkg.name} does not export correct files`, + ); }); return packages;