package.json 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. {
  2. "name": "blog",
  3. "version": "0.1.0",
  4. "private": true,
  5. "dependencies": {
  6. "@ant-design/icons": "^4.7.0",
  7. "@babel/core": "^7.16.0",
  8. "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
  9. "@reduxjs/toolkit": "^1.8.1",
  10. "@svgr/webpack": "^5.5.0",
  11. "@testing-library/jest-dom": "^5.14.1",
  12. "@testing-library/react": "^13.0.0",
  13. "@testing-library/user-event": "^13.2.1",
  14. "@types/jest": "^27.0.1",
  15. "@types/node": "^16.7.13",
  16. "@types/react": "^18.0.0",
  17. "@types/react-dom": "^18.0.0",
  18. "axios": "^0.27.2",
  19. "babel-jest": "^27.4.2",
  20. "babel-loader": "^8.2.3",
  21. "babel-plugin-named-asset-import": "^0.3.8",
  22. "babel-preset-react-app": "^10.0.1",
  23. "bfj": "^7.0.2",
  24. "browserslist": "^4.18.1",
  25. "camelcase": "^6.2.1",
  26. "case-sensitive-paths-webpack-plugin": "^2.4.0",
  27. "css-loader": "^6.5.1",
  28. "css-minimizer-webpack-plugin": "^3.2.0",
  29. "dotenv": "^10.0.0",
  30. "dotenv-expand": "^5.1.0",
  31. "eslint": "^8.3.0",
  32. "eslint-config-react-app": "^7.0.1",
  33. "eslint-webpack-plugin": "^3.1.1",
  34. "file-loader": "^6.2.0",
  35. "fs-extra": "^10.0.0",
  36. "html-webpack-plugin": "^5.5.0",
  37. "identity-obj-proxy": "^3.0.0",
  38. "jest": "^27.4.3",
  39. "jest-resolve": "^27.4.2",
  40. "jest-watch-typeahead": "^1.0.0",
  41. "mini-css-extract-plugin": "^2.4.5",
  42. "postcss": "^8.4.4",
  43. "postcss-flexbugs-fixes": "^5.0.2",
  44. "postcss-loader": "^6.2.1",
  45. "postcss-normalize": "^10.0.1",
  46. "postcss-preset-env": "^7.0.1",
  47. "prompts": "^2.4.2",
  48. "react": "^18.1.0",
  49. "react-app-polyfill": "^3.0.0",
  50. "react-dev-utils": "^12.0.1",
  51. "react-dom": "^18.1.0",
  52. "react-photo-view": "^1.1.2",
  53. "react-redux": "^8.0.2",
  54. "react-refresh": "^0.11.0",
  55. "react-router-dom": "^6.3.0",
  56. "resolve": "^1.20.0",
  57. "resolve-url-loader": "^4.0.0",
  58. "sass-loader": "^12.3.0",
  59. "semver": "^7.3.5",
  60. "source-map-loader": "^3.0.0",
  61. "style-loader": "^3.3.1",
  62. "tailwindcss": "^3.0.2",
  63. "terser-webpack-plugin": "^5.2.5",
  64. "typescript": "^4.4.2",
  65. "web-vitals": "^2.1.0",
  66. "webpack": "^5.64.4",
  67. "webpack-dev-server": "^4.6.0",
  68. "webpack-manifest-plugin": "^4.0.2",
  69. "workbox-webpack-plugin": "^6.4.1"
  70. },
  71. "scripts": {
  72. "start": "node scripts/start.js",
  73. "build": "node scripts/build.js",
  74. "test": "node scripts/test.js"
  75. },
  76. "eslintConfig": {
  77. "extends": [
  78. "react-app",
  79. "react-app/jest"
  80. ]
  81. },
  82. "browserslist": {
  83. "production": [
  84. ">0.2%",
  85. "not dead",
  86. "not op_mini all"
  87. ],
  88. "development": [
  89. "last 1 chrome version",
  90. "last 1 firefox version",
  91. "last 1 safari version"
  92. ]
  93. },
  94. "devDependencies": {
  95. "@typescript-eslint/eslint-plugin": "^5.25.0",
  96. "@typescript-eslint/parser": "^5.25.0",
  97. "eslint": "^8.15.0",
  98. "eslint-config-prettier": "^8.5.0",
  99. "eslint-plugin-prettier": "^4.0.0",
  100. "eslint-plugin-react": "^7.29.4",
  101. "eslint-plugin-react-hooks": "^4.5.0",
  102. "node-sass": "^7.0.1"
  103. },
  104. "jest": {
  105. "roots": [
  106. "<rootDir>/src"
  107. ],
  108. "collectCoverageFrom": [
  109. "src/**/*.{js,jsx,ts,tsx}",
  110. "!src/**/*.d.ts"
  111. ],
  112. "setupFiles": [
  113. "react-app-polyfill/jsdom"
  114. ],
  115. "setupFilesAfterEnv": [],
  116. "testMatch": [
  117. "<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
  118. "<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
  119. ],
  120. "testEnvironment": "jsdom",
  121. "transform": {
  122. "^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "<rootDir>/config/jest/babelTransform.js",
  123. "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
  124. "^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
  125. },
  126. "transformIgnorePatterns": [
  127. "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$",
  128. "^.+\\.module\\.(css|sass|scss)$"
  129. ],
  130. "modulePaths": [],
  131. "moduleNameMapper": {
  132. "^react-native$": "react-native-web",
  133. "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
  134. },
  135. "moduleFileExtensions": [
  136. "web.js",
  137. "js",
  138. "web.ts",
  139. "ts",
  140. "web.tsx",
  141. "tsx",
  142. "json",
  143. "web.jsx",
  144. "jsx",
  145. "node"
  146. ],
  147. "watchPlugins": [
  148. "jest-watch-typeahead/filename",
  149. "jest-watch-typeahead/testname"
  150. ],
  151. "resetMocks": true
  152. },
  153. "babel": {
  154. "presets": [
  155. "react-app"
  156. ]
  157. }
  158. }