mirror of
https://github.com/facebook/react.git
synced 2026-02-27 03:07:57 +00:00
Currently, since we use a module cache for async modules, it doesn't automatically get updated when the module registry gets updated (HMR). This technique ensures that if Webpack replaces the module (HMR) then we'll get the new Promise when we require it again. This technique doesn't work for ESM and probably not Vite since ESM will provide a new Promise each time you call `import()` but in the Webpack/CJS approach this Promise is an entry in the module cache and not a promise for the entry. I tried to replicate the original issue in the fixture but it's tricky to replicate because 1) we can't really use async modules the same way without compiling both server and client 2) even then I'm not quite sure how to repro the HMR issue.
144 lines
4.5 KiB
JSON
144 lines
4.5 KiB
JSON
{
|
|
"name": "flight",
|
|
"type": "module",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"dependencies": {
|
|
"@babel/core": "^7.16.0",
|
|
"@babel/plugin-proposal-private-property-in-object": "^7.18.6",
|
|
"@babel/preset-react": "^7.22.5",
|
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
|
|
"@svgr/webpack": "^5.5.0",
|
|
"@testing-library/jest-dom": "^5.14.1",
|
|
"@testing-library/react": "^13.0.0",
|
|
"@testing-library/user-event": "^13.2.1",
|
|
"babel-jest": "^27.4.2",
|
|
"babel-loader": "^8.2.3",
|
|
"babel-plugin-named-asset-import": "^0.3.8",
|
|
"babel-preset-react-app": "^10.0.1",
|
|
"body-parser": "^1.20.1",
|
|
"browserslist": "^4.18.1",
|
|
"busboy": "^1.6.0",
|
|
"camelcase": "^6.2.1",
|
|
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|
|
"compression": "^1.7.4",
|
|
"concurrently": "^7.3.0",
|
|
"css-loader": "^6.5.1",
|
|
"css-minimizer-webpack-plugin": "^3.2.0",
|
|
"dotenv": "^10.0.0",
|
|
"dotenv-expand": "^5.1.0",
|
|
"file-loader": "^6.2.0",
|
|
"fs-extra": "^10.0.0",
|
|
"html-webpack-plugin": "^5.5.0",
|
|
"identity-obj-proxy": "^3.0.0",
|
|
"jest": "^27.4.3",
|
|
"jest-resolve": "^27.4.2",
|
|
"jest-watch-typeahead": "^1.0.0",
|
|
"mini-css-extract-plugin": "^2.4.5",
|
|
"nodemon": "^2.0.19",
|
|
"postcss": "^8.4.4",
|
|
"postcss-flexbugs-fixes": "^5.0.2",
|
|
"postcss-loader": "^6.2.1",
|
|
"postcss-normalize": "^10.0.1",
|
|
"postcss-preset-env": "^7.0.1",
|
|
"prompts": "^2.4.2",
|
|
"react": "experimental",
|
|
"react-dev-utils": "^12.0.1",
|
|
"react-dom": "experimental",
|
|
"react-refresh": "^0.11.0",
|
|
"resolve": "^1.20.0",
|
|
"resolve-url-loader": "^4.0.0",
|
|
"sass-loader": "^12.3.0",
|
|
"semver": "^7.3.5",
|
|
"source-map-loader": "^3.0.0",
|
|
"style-loader": "^3.3.1",
|
|
"tailwindcss": "^3.0.2",
|
|
"terser-webpack-plugin": "^5.2.5",
|
|
"undici": "^5.20.0",
|
|
"webpack": "^5.64.4",
|
|
"webpack-dev-middleware": "^5.3.1",
|
|
"webpack-hot-middleware": "^2.25.3",
|
|
"webpack-manifest-plugin": "^4.0.2"
|
|
},
|
|
"scripts": {
|
|
"predev": "cp -r ../../build/oss-experimental/* ./node_modules/",
|
|
"prebuild": "cp -r ../../build/oss-experimental/* ./node_modules/",
|
|
"dev": "concurrently \"npm run dev:region\" \"npm run dev:global\"",
|
|
"dev:global": "NODE_ENV=development BUILD_PATH=dist node --experimental-loader ./loader/global.js server/global",
|
|
"dev:region": "NODE_ENV=development BUILD_PATH=dist nodemon --watch src --watch dist -- --experimental-loader ./loader/region.js --conditions=react-server server/region",
|
|
"start": "node scripts/build.js && concurrently \"npm run start:region\" \"npm run start:global\"",
|
|
"start:global": "NODE_ENV=production node --experimental-loader ./loader/global.js server/global",
|
|
"start:region": "NODE_ENV=production node --experimental-loader ./loader/region.js --conditions=react-server server/region",
|
|
"build": "node scripts/build.js",
|
|
"test": "node scripts/test.js --env=jsdom"
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"jest": {
|
|
"roots": [
|
|
"<rootDir>/src"
|
|
],
|
|
"collectCoverageFrom": [
|
|
"src/**/*.{js,jsx,ts,tsx}",
|
|
"!src/**/*.d.ts"
|
|
],
|
|
"setupFiles": [
|
|
"react-app-polyfill/jsdom"
|
|
],
|
|
"setupFilesAfterEnv": [
|
|
"<rootDir>/src/setupTests.js"
|
|
],
|
|
"testMatch": [
|
|
"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
|
|
"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
|
|
],
|
|
"testEnvironment": "jsdom",
|
|
"transform": {
|
|
"^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "<rootDir>/config/jest/babelTransform.js",
|
|
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
|
|
"^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
|
|
},
|
|
"transformIgnorePatterns": [
|
|
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$",
|
|
"^.+\\.module\\.(css|sass|scss)$"
|
|
],
|
|
"modulePaths": [],
|
|
"moduleNameMapper": {
|
|
"^react-native$": "react-native-web",
|
|
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
|
|
},
|
|
"moduleFileExtensions": [
|
|
"web.js",
|
|
"js",
|
|
"web.ts",
|
|
"ts",
|
|
"web.tsx",
|
|
"tsx",
|
|
"json",
|
|
"web.jsx",
|
|
"jsx",
|
|
"node"
|
|
],
|
|
"watchPlugins": [
|
|
"jest-watch-typeahead/filename",
|
|
"jest-watch-typeahead/testname"
|
|
],
|
|
"resetMocks": true
|
|
},
|
|
"babel": {
|
|
"presets": [
|
|
"react-app"
|
|
]
|
|
}
|
|
}
|