{ "name": "mr-julyedu", "version": "0.1.0", "private": true, "dependencies": { "@babel/core": "7.9.0", "@babel/plugin-proposal-decorators": "^7.10.5", "@loadable/component": "^5.13.1", "@svgr/webpack": "4.3.3", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", "@types/classnames": "^2.2.10", "@types/jest": "^24.9.1", "@types/node": "^12.12.54", "@types/qs": "^6.9.4", "@types/react": "^16.9.44", "@types/react-dom": "^16.9.8", "@types/react-redux": "^7.1.9", "@types/react-router-dom": "^5.1.5", "@types/redux-logger": "^3.0.8", "@typescript-eslint/eslint-plugin": "^2.10.0", "@typescript-eslint/parser": "^2.10.0", "antd-mobile": "^2.3.3", "autoprefixer": "^9.8.6", "axios": "^0.19.2", "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.1.0", "babel-jest": "^24.9.0", "babel-loader": "8.1.0", "babel-plugin-named-asset-import": "^0.3.6", "babel-preset-react-app": "^9.1.2", "bfj": "6.1.1", "callapp-lib": "^2.1.8", "camelcase": "^5.3.1", "case-sensitive-paths-webpack-plugin": "2.3.0", "crypto-js": "^3.3.0", "css-loader": "3.4.2", "date-fns": "^2.15.0", "dotenv": "8.2.0", "dotenv-expand": "5.1.0", "eslint": "^6.6.0", "eslint-config-react-app": "^5.2.1", "eslint-loader": "3.0.3", "eslint-plugin-flowtype": "4.6.0", "eslint-plugin-import": "2.20.1", "eslint-plugin-jsx-a11y": "6.2.3", "eslint-plugin-react": "7.19.0", "eslint-plugin-react-hooks": "^1.6.1", "file-loader": "4.3.0", "formik": "^2.1.5", "fs-extra": "^8.1.0", "html-webpack-plugin": "4.0.0-beta.11", "html2canvas": "^1.0.0-rc.5", "http-proxy-middleware": "^0.19.2", "husky": "^4.2.5", "identity-obj-proxy": "3.0.0", "jest": "24.9.0", "jest-environment-jsdom-fourteen": "1.0.1", "jest-pnp-resolver": "1.0.2", "jest-resolve": "24.9.0", "jest-watch-typeahead": "0.4.2", "js-base64": "^2.6.4", "js-cookie": "^2.2.1", "json-stringify-safe": "^5.0.1", "less": "^3.12.2", "less-loader": "^4.1.0", "lint-staged": "^10.2.11", "lodash": "^4.17.19", "mini-css-extract-plugin": "0.9.0", "node-sass": "^4.14.1", "optimize-css-assets-webpack-plugin": "5.0.3", "pnp-webpack-plugin": "1.6.4", "postcss-flexbugs-fixes": "4.1.0", "postcss-loader": "3.0.0", "postcss-normalize": "8.0.1", "postcss-preset-env": "6.7.0", "postcss-safe-parser": "4.0.1", "prettier": "^2.0.5", "prop-types": "^15.7.2", "qrcode": "^1.4.4", "qs": "^6.9.4", "react": "^16.13.1", "react-ace": "^8.1.0", "react-app-polyfill": "^1.0.6", "react-copy-to-clipboard": "^5.0.2", "react-dev-utils": "^10.2.1", "react-dom": "^16.13.1", "react-infinite-scroller": "^1.2.4", "react-lazy-load": "^3.1.13", "react-mobile-swiper": "^1.1.4", "react-redux": "^7.2.1", "react-router-dom": "^5.2.0", "react-spinners": "^0.9.0", "react-sticky": "^6.0.3", "redux": "^4.0.5", "redux-immutable": "^4.0.0", "redux-logger": "^3.0.6", "redux-thunk": "^2.3.0", "resolve": "1.15.0", "resolve-url-loader": "3.1.1", "sass-loader": "8.0.2", "semver": "6.3.0", "socket.io": "^2.3.0", "start": "^5.1.0", "store2": "^2.11.2", "style-loader": "0.23.1", "swiper": "^4.5.1", "terser-webpack-plugin": "2.3.5", "ts-pnp": "1.1.6", "typescript": "^3.7.5", "url-loader": "2.3.0", "vconsole": "^3.3.4", "video.js": "^7.8.4", "web-launch-app": "^2.2.4", "webpack": "4.42.0", "webpack-dev-server": "^3.11.0", "webpack-manifest-plugin": "2.2.0", "workbox-webpack-plugin": "4.3.1" }, "scripts": { "start": "node scripts/start.js", "build": "node scripts/build.js", "test": "node scripts/test.js", "storybook": "start-storybook -p 6006", "build-storybook": "build-storybook" }, "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "*.(js|css|ts[x])": [ "prettier --write", "git add ." ] }, "eslintConfig": { "extends": "react-app", "globals": { "API": "readonly", "NoCaptcha": "readonly", "WeixinJSBridge": "readonly", "_czc": "writable", "wx": "readonly" } }, "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.ts" ], "testMatch": [ "<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}", "<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}" ], "testEnvironment": "jest-environment-jsdom-fourteen", "transform": { "^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest", "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js", "^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js" }, "transformIgnorePatterns": [ "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|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" ] }, "babel": { "presets": [ "react-app" ], "plugins": [ [ "@babel/plugin-proposal-decorators", { "legacy": true } ], [ "import", { "libraryName": "antd-mobile", "style": "css" } ] ] }, "devDependencies": { "@babel/runtime": "^7.11.2", "@storybook/addon-actions": "^5.3.19", "@storybook/addon-knobs": "^5.3.19", "@storybook/addon-links": "^5.3.19", "@storybook/addons": "^5.3.19", "@storybook/preset-typescript": "^3.0.0", "@storybook/react": "^5.3.19", "babel-plugin-import": "^1.13.0", "browserslist": "^4.14.0", "caniuse-lite": "^1.0.30001112", "classnames": "^2.2.6", "fork-ts-checker-webpack-plugin": "^5.0.14", "mockjs": "^1.1.0", "postcss-px-to-viewport": "^1.1.1", "ts-loader": "^8.0.2" }, "theme": "./src/assets/theme/config.js" }