{"_id":"p-share-utils-test","_rev":"26-6f45d1edeb2b4208d8058060eb28f8be","name":"p-share-utils-test","dist-tags":{"latest":"2.17.1"},"versions":{"1.0.0":{"name":"p-share-utils-test","version":"1.0.0","description":"just for share something from local 2 remote","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.0.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-EY2/dhcvmcb0Zc2Ni0krDVWXI/5FIlPOMq9r9tMvGk2Koj2r85IAg9mgj34E6jhddVhVppEq5KYkF57k3LkA5A==","shasum":"1b303b62489089041b8e7e4e3344fb80f5438646","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.0.0.tgz","fileCount":6,"unpackedSize":37036582,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQ2d5YTDAax6kY2w1lWuRk29+wSQk+WtoHBwkaW3QJ/AIhAPhZlJntzzHSBVYXwhLwVLFMRz090fqgBN2KLIXdpF9q"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.0.0_1702379314985_0.17747166908556378"},"_hasShrinkwrap":false},"1.0.1":{"name":"p-share-utils-test","version":"1.0.1","description":"just for share something from local 2 remote","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.0.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-9+66eBKXobbjRWWz3caHG+EC/oKCQAVxMRoCEND4gnmX5IxkJWREmHXOY00Uy51XLbBhEJb94LfAk3qd1hcraA==","shasum":"77522afb8cebd5a37fce4dd9e31426789968ac88","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.0.1.tgz","fileCount":14,"unpackedSize":40120786,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICqKEcT60/eLycLzgafoqDyZ8Xk5fiFe6MUA6h4SneRVAiAdIHI7O15QgBtEFnZlp2uu6/CtXlSS95FBKFFZUZfIKQ=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.0.1_1702558484145_0.577399651228216"},"_hasShrinkwrap":false},"1.0.2":{"name":"p-share-utils-test","version":"1.0.2","description":"just for share something from local 2 remote","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.0.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Y96dyK7fNW0fKLGG70yziaoZ8Sp6xd8SZ1WNHvNjlHSHJU1iEuaVwOcxNeZhF85ozTLTm3NVRAcYWQKoSyEPYg==","shasum":"932c52c70a2ad5a3407d4ba20554c36ff8230ccf","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.0.2.tgz","fileCount":7,"unpackedSize":44064806,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDxvF+IwMwsgg/43H+8uzvtuoeybJYS1uA8cExbBH4nCAiAadff+XLcQWd68AZQlZv6GABAAPiM4gHrMom/t98dzCw=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.0.2_1702705454588_0.5231760549114632"},"_hasShrinkwrap":false},"1.0.3":{"name":"p-share-utils-test","version":"1.0.3","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.0.3","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-LFYgwGZmZTP4aBVuTbZltIVs3sLJxTYZpC4lhEj05BmCSCAeP4Btu8rkcq6NJLmdy6LPtTYwBB6XYlsouyCMBA==","shasum":"2e3e125b93cc42fe79f2d744ba1a1e58d140c969","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.0.3.tgz","fileCount":2,"unpackedSize":3383461,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpxjolJQZo53mhhE49hQhJG+uzQCxRCv72HaAslucKFgIhAMCvh0gC4o8TT6sMh3GSWgpWbkAhmGKowcX6ijyLBJSB"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.0.3_1702890385829_0.7091925639145313"},"_hasShrinkwrap":false},"1.0.4":{"name":"p-share-utils-test","version":"1.0.4","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.0.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-kaXa8+55EJf4SHXfP99TWNI1xlYBq5EjMpGEPpCnTu7PF0WBzMNfknxSrTP5fjdJH7ZSqaIKi2kRgdIxG6om0Q==","shasum":"fa53079b58bf4012d02208ff37f71fb60cd96780","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.0.4.tgz","fileCount":2,"unpackedSize":7639888,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBlRJ20KQ9FTIM3wZUOr0sZWcPRSL1gVhoRtoRNqTpeuAiBgU1WxlX9MdIX6l/27iJZgZN98pn6RLhCw5Ieco6xpcQ=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.0.4_1702970276409_0.7273074613890476"},"_hasShrinkwrap":false},"1.1.3":{"name":"p-share-utils-test","version":"1.1.3","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.1.3","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-gENYDTREzSjptBqYWOcBbK4c7o/rW1ldh0yrHJNj6SpaeLaGwRTqLgiRWrxBPq53o7uvAmVjSbp81TafFyPDew==","shasum":"666fa188feadb7a6763d7bf646f63885199448be","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.1.3.tgz","fileCount":2,"unpackedSize":1036473,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlQWDotH3QdQhe2gyeDo+3S/F3H46Rg4tM73QmXT8+LwIgPY2G6hiaB4hWKxtmPNGJPPTnrfj5lFWsMaWorC2WYc8="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.1.3_1702986582498_0.6293962891039422"},"_hasShrinkwrap":false},"1.2.2":{"name":"p-share-utils-test","version":"1.2.2","description":"just for share something from local 2 remote","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.2.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-/0uCYONNZ2Num6+6UbLw4wyv011h+9uuZsUm6wQkegOXlGb7y93zUZUnNxXVB08JLO/7yqbodkCUdIvWOE9mgw==","shasum":"235eb0cf14cfb1e401f8698a47b55a83eaca793d","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.2.2.tgz","fileCount":7,"unpackedSize":38955293,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQDtnxqPfi4k/JUxREs/V9mRaafG/3b35Sqjscr4/VgwIhANgF0GkdguS6kdwVIITQqTNQWnVqBg77jyrvARACQHZm"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.2.2_1703128588539_0.5726586643571367"},"_hasShrinkwrap":false},"1.2.4":{"name":"p-share-utils-test","version":"1.2.4","description":"just for share something from local 2 remote","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.2.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-f4tD9DK+/4WtTO5VjJ+0KXLFAWKSP3MGLOO0emI927MzuQ22JpIziD1ug43h8f24zx0ZgOqJ+IqNbo7e7wFx0w==","shasum":"a25a1e8995a9c858da6ab8427e3229a882b650cb","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.2.4.tgz","fileCount":40,"unpackedSize":45817764,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfsy+Cl+ADNaK37sKKz/wwnA2NDyWt0cBz0oU31R56lAiA98HFPyUur4LZXOlfKx6mDwA7ygLEDsOVZPSYJGmIl1g=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.2.4_1703175733698_0.9688986134120983"},"_hasShrinkwrap":false},"1.2.5":{"name":"p-share-utils-test","version":"1.2.5","description":"just for share something from local 2 remote","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.2.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-393vkWoxhjTmGZoMHXnW/kSRQLbh33At4WLhE0JxZnpDwqIJJ3fKrJuFDDceF5gKpbN4sdjoaxzABy9FhyGAGw==","shasum":"a2da1259d4727b03dcf2dc6086d8bf0d1120d8a0","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.2.5.tgz","fileCount":40,"unpackedSize":46085566,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwVtArD0rNUls7a3N6ohyXIJyqgD2sYsqh4jMOPJQZCAIgZjEbi1LmiwscWeRFuCZqQ0Mp/eYwaBqFpN2HeujxxjM="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.2.5_1703869586800_0.47471809694347455"},"_hasShrinkwrap":false},"1.3.3":{"name":"p-share-utils-test","version":"1.3.3","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.3.3","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-di7KXQE0KdEn6DRWdz0ZuTQq/ZE9T0GNcEFRQbVLnvkSu1g2sA9Y75jEG80bFb9Mh5tIzU5Ed63l3rRlBjernQ==","shasum":"f8c4df2644636e925ffd06f3023fef77d76b5f4a","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.3.3.tgz","fileCount":2,"unpackedSize":8102742,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXIOiK/aCgrHRPjGsXtcmfJs0CvpG9QAihed/wsqH2nQIgY2Ch+vq8KZSw25ATBtBqahOXSGaZcvYhyCsxZAQWA/U="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.3.3_1703878037766_0.38374138075018527"},"_hasShrinkwrap":false},"1.3.8":{"name":"p-share-utils-test","version":"1.3.8","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"p-share-utils-test@1.3.8","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-N7w8quBLm26jjiMQ3mlYs003UXPR+1fJVlDadEEiCisbQukInpXKSnIU0+HQCPmjQx/mFZb2OUMP65gJG81TeQ==","shasum":"057090be0b88aa5ff38e172f6cee3e4bf795ecfc","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-1.3.8.tgz","fileCount":2,"unpackedSize":1111374,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNB7yxzJSprIcpWmKa26Rqw+SZXfm6nmB/WrFi850YqAIhAMkgCeRDEZ8lwnTwEcCA68ahjB67ZooeikIjjxKaRLU6"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_1.3.8_1704168544239_0.46901488876211417"},"_hasShrinkwrap":false},"2.10.0":{"name":"p-share-utils-test","version":"2.10.0","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"fc104b103040b06facc555c15426b239bc6be819","_id":"p-share-utils-test@2.10.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-Xlp1ECIuIn72GYpf1AtJNVHtl7J5UMKq2Ru/Pr3r8aPSs9ZbAV+zWrRQc9fcMUgcLomeO2VcYVoNVEHa0pcfxQ==","shasum":"482f29073d96f01975344fb24b62d648245d86fe","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.10.0.tgz","fileCount":205,"unpackedSize":1141058,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBQa0ADDxKRvw4pbIBvJGVWuLP1PqeRwlDJzAgIxmUGcAiEAtXgAXiU6rAkSNhJID2+pOnL6eYCzsj19TbuQsdS8XPA="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.10.0_1704186967949_0.33590241966709744"},"_hasShrinkwrap":false},"2.10.1":{"name":"p-share-utils-test","version":"2.10.1","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"fc104b103040b06facc555c15426b239bc6be819","_id":"p-share-utils-test@2.10.1","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-42WXDRr0ToTTbgVTg2zNdoK/1MGQLLXp7GQgEmGcf2Na1l9rClJFRgOD2inWbZK03HkpRHhslJTteF131rtYMA==","shasum":"49d7470fb09886ebe38c35cfda80d7622e86eb07","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.10.1.tgz","fileCount":255,"unpackedSize":4542317,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfqZ5nLxwqZWgDMQCD6KYcpSouMzfbGVyMGGRdUOYMbQIhAN7eyY2EFXUGaE7opsc3YaEworycyp4FpHD4kaQm08Or"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.10.1_1704187571024_0.527686945124274"},"_hasShrinkwrap":false},"2.10.2":{"name":"p-share-utils-test","version":"2.10.2","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"7d3f5387f60be88e942ba9c3889fc60ef9a83950","_id":"p-share-utils-test@2.10.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-8wIuowMaKD609Mlkzo1EoNnswxe5ceedyFJqFwFKzFTxkaoQxWlvmBizKsbyObvf0GNQpYKjq6KBx1iq/hCwBw==","shasum":"c9c1dca203d2c56434ace4ce94fc20f8d154a927","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.10.2.tgz","fileCount":264,"unpackedSize":4515347,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBsQ7xBGFKOKXD4M9lmKWxRz+7tcC8zbf6QbWdaE40XAIgA6fGscKIPWkruavZ8FNWZhWNoF82HlBkyTK8VBOskCs="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.10.2_1704279637793_0.5714473032700231"},"_hasShrinkwrap":false},"2.11.2":{"name":"p-share-utils-test","version":"2.11.2","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"69059c652338c3bf2a3ea892acdd947e119d9df3","_id":"p-share-utils-test@2.11.2","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-UdtmPLqYj2uUp6bJMmWNa9JSChnWy5IrZW4BB+HNeUIhbz30jMWktMBNWGJ+QAJcwGpX5ylB79LHDYqmdgZcdg==","shasum":"399b0aedda5500e27636237c683fdba278d7385b","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.11.2.tgz","fileCount":264,"unpackedSize":4523464,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBMEJMOgVHLczTxmNp05Fj30W1Q0rsrajku9IkW4RIiAiEAqUFgme5uhnC3L2odPQ3vsxM8jTLKzQWLQTJeUb63Zto="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.11.2_1704373775733_0.703720295183528"},"_hasShrinkwrap":false},"2.12.0":{"name":"p-share-utils-test","version":"2.12.0","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"ec9b2e793137850cb3f9648fc6ec6c84c4b2a732","_id":"p-share-utils-test@2.12.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-whNqJ/DucEG6381NIxZM7xz+8wuC00HGtT7ZKDk6cRM50zcufC3Uec4FNuz09t3tDbYH1Y6ZsEOg8XZ3W0NvGA==","shasum":"49c1e02ecb139b1319b01bbb484aea2e601cf4d3","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.12.0.tgz","fileCount":265,"unpackedSize":4526268,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDo0e+aQgboXyQJzp9CWNqETFlAudJ8wWCOdQUOW5AVGgIgLExp2t+WFei/6o5DYSZPOUccVhjL/2Df6RFmlkZ/Jf0="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.12.0_1704537354161_0.6525243394123992"},"_hasShrinkwrap":false},"2.12.1":{"name":"p-share-utils-test","version":"2.12.1","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"041d2e17d5d305be2c9d8f1dd05ff1282edcca25","_id":"p-share-utils-test@2.12.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-qDeNSJ9dUoFPr4tlFzJrvHyPIIpMpcFD2DH68/rzg/u7gu3F1+BoKO9tjN5Pijr16ZMrULmb5YNfygcGS+dj4w==","shasum":"168d0fb9a59feaaa5c18b66069efe23f4c2b8c84","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.12.1.tgz","fileCount":323,"unpackedSize":5295000,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCFxqJ4BXH/ReuQA8HnUCgmgoNwqlTMDA+QVEfyWBXmAiBYOle72cRmd9JvAYgmvqoz20ts2g2MXe0/iACWQ452pQ=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.12.1_1704773495186_0.6066646360261658"},"_hasShrinkwrap":false},"2.13.0":{"name":"p-share-utils-test","version":"2.13.0","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"ec9b2e793137850cb3f9648fc6ec6c84c4b2a732","_id":"p-share-utils-test@2.13.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-55g/dvjCc2ue3nGA+wqx0K77APyqxxvNM+H7atJM8TCqEXtmik8UWpR1MOiMkQGi8szbgzs9OrwGHgMsTqSQEg==","shasum":"22a712b3994c28ed7482a3861bfd6d0d51602477","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.13.0.tgz","fileCount":323,"unpackedSize":5298655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICiFFUV3ezAyl5ue9uCNv92qT2G3zrx1h9siEiV5S9N0AiEArYfo1s3iNGBXAf4tADeQeqMsLX/Wl67KMvdqfM6++zI="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.13.0_1704804922983_0.28694245969373"},"_hasShrinkwrap":false},"2.13.1":{"name":"p-share-utils-test","version":"2.13.1","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"9ee4e44870ce9e74fa7e0d1a3de1c43cc15350cc","_id":"p-share-utils-test@2.13.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-w2UOtbg1Q/p1rJa9pI1xyFK9bCrwo7mbFjhmyTr1Qsp6k4lw/ILNUY7V1H6kW6Lyt0U+iycgG342Fq0XuTuo2Q==","shasum":"ae336814358128f08c7a9470d4b674a9f1326255","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.13.1.tgz","fileCount":403,"unpackedSize":5755128,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC66zJAJQgSTBTvwJTJti0zK4UBBa5Z2A4Ysu6OkwW/TAIhAMVhmm3cw16T7AyD9H9DT/K/Qm2SEHKl5mawY3Ul0+Zn"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.13.1_1704888456052_0.4978711046419708"},"_hasShrinkwrap":false},"2.14.0":{"name":"p-share-utils-test","version":"2.14.0","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"ec9b2e793137850cb3f9648fc6ec6c84c4b2a732","_id":"p-share-utils-test@2.14.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-KT7cfZExnp2t3JlhrgQ5TF0p9VEbh8i5auYJm0+iY5edgMoBTn8/vqHj/R54+0B1DuHrG49V+kmJAcw+nuf4Aw==","shasum":"61fd5e91868b647a29b72e4860d6348465818640","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.14.0.tgz","fileCount":402,"unpackedSize":5758449,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHcwMMVMm5U124h/MABTufUjmhemAOqvwFA/QigA6vIKAiEAhO18o1eAPry/o+nYK/iI3BW+OCo9UvlAiwn2W8hQR2I="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.14.0_1704983340539_0.2585876290337701"},"_hasShrinkwrap":false},"2.14.1":{"name":"p-share-utils-test","version":"2.14.1","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"6fc01179742511b17fab57c2510a648ed3f4ef9e","_id":"p-share-utils-test@2.14.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-XsTSdpepkvUBe8WN4AQKZdyeHKSKA++9TePDILxf/ywuA/wjlfBLhDCxzr1UJfsakWJBqlgk3SVf43nxNCSBDQ==","shasum":"687cdb39520a268108e2d82cdbab05647ac7aa76","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.14.1.tgz","fileCount":389,"unpackedSize":15234212,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFwVxOZ3BInvSXr7/DFtqMV8ZcZq370ROF+MhyZfDct6AiEAzbiP57+QDhc0PAtTWIMKIhEb6TnVvKcwYls7n2fLJaQ="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.14.1_1705251087402_0.40309120054499403"},"_hasShrinkwrap":false},"2.15.0":{"name":"p-share-utils-test","version":"2.15.0","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"ec9b2e793137850cb3f9648fc6ec6c84c4b2a732","_id":"p-share-utils-test@2.15.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-G8rOA24zv6ilRQlHCeW6JCf7IRAQ3N8L/+SngA3k/81skltDn8iwfLAKbajDEzZQMtx41ORnTY2VMP/r8A50Ng==","shasum":"6e200be22216ce0efc8727fee7f332f085b386ec","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.15.0.tgz","fileCount":541,"unpackedSize":17236096,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDdEzoQs7nXEKfGAHcO+SsVgEgVyaBTXM3HBWjEdPtNkAiEA1H6HEUnm6+BKVLYUS/MwzbrXuEqAgqXeYjqOLslxn4I="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.15.0_1705463629527_0.20383291763021538"},"_hasShrinkwrap":false},"2.15.1":{"name":"p-share-utils-test","version":"2.15.1","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"4f0ef34a07cfb877eb8dada7124c203f1c3cdaf6","_id":"p-share-utils-test@2.15.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-gNu+FwoJgp03BgcYXcWXfNJNR/K8Y52yXwq6VPUAYSHqIwLRgE2Ei9uJOJDPy+V5kfUTqgd2LhyWGDjV4/HA8Q==","shasum":"57c0f76493b3ee35562c30ceef31f55bdeeb94ca","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.15.1.tgz","fileCount":559,"unpackedSize":17660790,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6Mkhs2voo7exNCqAnT6Dyzx9s26meX3sNFG6c9Fl+FAIhALf2pjGqsV9baymz3lT206hmqN1dukztDIQuNB3uzkHw"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.15.1_1705464569974_0.6426610025261854"},"_hasShrinkwrap":false},"2.16.0":{"name":"p-share-utils-test","version":"2.16.0","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"6a5dbfaef3c792047de3511324324250106e6997","_id":"p-share-utils-test@2.16.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-j64fq/mq2ueZTxfpKZ6LwrKS0TkP2/Vc5IQO+tjspEV64H3QM4S3lk9hPrPMBICVMqaYGkSe3s4OzHd+Uyl9aw==","shasum":"53f13354e1f5907da012fd643df327fc65d9afdb","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.16.0.tgz","fileCount":559,"unpackedSize":17662014,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHXa/9+XYdeJ4pA9+HghLBMMMYFvqeujo791gTjaTjXMAiAgSQhYylXJaHsTnzlRbUZs/aQG2Tgl4/XrzQIyyJIFtw=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.16.0_1705493822136_0.7848823839241494"},"_hasShrinkwrap":false},"2.16.1":{"name":"p-share-utils-test","version":"2.16.1","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"c44d0424707b2cbff7da871b2b6a04ef8c029080","_id":"p-share-utils-test@2.16.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-b2vkPSG9/uMPke0xseClWn1Qs+PSmYqfixTTdMq5shEsqIJbMbvwpaXc0n4nehUUCYAgvGTPBf21QWDPJ36kNw==","shasum":"10fd565a66eda5b96d035aaff6899ccbac933eb0","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.16.1.tgz","fileCount":624,"unpackedSize":18517944,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfL62GHvKCHYAzK/7EiooEd9P1uJ82ayVrq3/GuMGvGAIhAJRa67c6/m3ySAdlYlfqbHPwkvxD3F3kiPjuD9Cd114y"}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.16.1_1705549658149_0.6243755461603886"},"_hasShrinkwrap":false},"2.17.0":{"name":"p-share-utils-test","version":"2.17.0","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"7f35caba5e83ce7ab46d198b2fb9cbc45417378c","_id":"p-share-utils-test@2.17.0","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-gaY1VHC6SOQ4UKM5tCBIdcB7f0Tq7N8ZgLrhH4uMEQKcXFS/wEPib/oXsgeRYsiwIJp9scq+j1pMU5gPzbH1Bw==","shasum":"fabf21142dde3e41fcd465ead15f6001f5e90f17","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.17.0.tgz","fileCount":652,"unpackedSize":18552732,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEvdYh4fGxaH0cF89KHTLPDgs69Oo2yVtXYGVLSVaO14AiAcTT7ltYPQwnN6amfQmo5tWm7Agz6VOgFVSL485jDGZA=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.17.0_1705658105144_0.4157020398091664"},"_hasShrinkwrap":false},"2.17.1":{"name":"p-share-utils-test","version":"2.17.1","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","gitHead":"de57f4e8cc63a5e94c463814ded0fcf1d6276343","_id":"p-share-utils-test@2.17.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-fp2iVrMhaXIQS9jlvGaaciWyYp2BxVszy0c/y00LOMHbhC+Yz/glZS0kTQHUjQkfJniN6Y3jkBbTFqbJUCD+iw==","shasum":"f6c60a6701f6dd602ddc8c9acc3ae098e9eb8aa0","tarball":"https://registry.npmjs.org/p-share-utils-test/-/p-share-utils-test-2.17.1.tgz","fileCount":699,"unpackedSize":29220084,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGN35n0VKnNDddC/CeE8rDnKHTke20oq2XZ+Ria5vGVlAiBX+unaBr/mmpPAels9Uk9U/aBAG0wvhRJaJD7tRYBiSg=="}]},"_npmUser":{"name":"yiyitang001","email":"yiyitang001@gmail.com"},"directories":{},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-share-utils-test_2.17.1_1705740161139_0.0059146940074785714"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-12T11:08:34.984Z","1.0.0":"2023-12-12T11:08:35.605Z","modified":"2024-01-20T08:42:41.820Z","1.0.1":"2023-12-14T12:54:44.748Z","1.0.2":"2023-12-16T05:44:15.304Z","1.0.3":"2023-12-18T09:06:26.093Z","1.0.4":"2023-12-19T07:17:56.621Z","1.1.3":"2023-12-19T11:49:42.764Z","1.2.2":"2023-12-21T03:16:29.397Z","1.2.4":"2023-12-21T16:22:14.394Z","1.2.5":"2023-12-29T17:06:27.404Z","1.3.3":"2023-12-29T19:27:18.088Z","1.3.8":"2024-01-02T04:09:04.431Z","2.10.0":"2024-01-02T09:16:08.197Z","2.10.1":"2024-01-02T09:26:11.339Z","2.10.2":"2024-01-03T11:00:38.030Z","2.11.2":"2024-01-04T13:09:36.046Z","2.12.0":"2024-01-06T10:35:54.455Z","2.12.1":"2024-01-09T04:11:35.464Z","2.13.0":"2024-01-09T12:55:23.268Z","2.13.1":"2024-01-10T12:07:36.303Z","2.14.0":"2024-01-11T14:29:00.771Z","2.14.1":"2024-01-14T16:51:27.750Z","2.15.0":"2024-01-17T03:53:50.049Z","2.15.1":"2024-01-17T04:09:30.383Z","2.16.0":"2024-01-17T12:17:02.521Z","2.16.1":"2024-01-18T03:47:38.503Z","2.17.0":"2024-01-19T09:55:05.508Z","2.17.1":"2024-01-20T08:42:41.657Z"},"maintainers":[{"name":"yiyitang001","email":"yiyitang001@gmail.com"}],"license":"ISC","readme":"# KMG FONT-END 2C 项目开发指南 #\n\n### 技术栈\n框架体系：\n`react - v1.18.12 / redux / typescript - v4.0`\n\n其他：\n`webpack / scss / lodash / axios`\n\n### 安装工程\n`npm start`\n\n### 启动工程\n`npm run build` -> `编译/打包/开发模式` -> `开发模式` -> `对应项目-对应客户端`\n\n### 开发/打包配置\n参见 `/deployment/projects.config.js`\n\n### 插件\n请在VS CODE中安装以下插件，来激活团队IDE配置与格式化配置`Prettier`, `EditorConfig`\n\n### 跨域\n`默认开发时的API接口为：webpack - proxy`\n\n### 基本目录结构\n<pre>\nweb-main\n  |- assets\n  |- cli\n  |- deployment\n  |- src\n  |   |- assets\n  |   |- core (核心文件，影响全平台全端)\n  |       |-actions     * redux行为\n  |       |-apis        * 接口相关\n  |       |-constants   * 常量（配置等）\n  |       |-middleware  * redux中间件\n  |       |-mocks       * 模拟接口数据，临时存放\n  |       |-helpers     * 工具类\n  |       |-i18n        * 国际化目录\n  |       |-hooks       * React HOOK - 提供视图层主体逻辑\n  |       |-reducers    * redux reducer\n  |       |-schemas     * TS全局声明\n  |       |-store       * redux store\n  |       |-types       * redux types\n  |       |-templates   * 公共模板\n  |          |-mobile   * 手机端模板\n  |          |-desktop  * PC端模板\n  |          |-static   * 静态模板\n  |       |\n  |   |- views (视图文件，影响单个项目或单个端)\n  |       |-kmg（视图工程）\n  |         |-assets  * 静态资源\n  |         |-public  * 公共配置 - 影响单个项目\n  |         |-desktop * PC端视图\n  |         |-mobile  * H5端视图\n  :       :    :\n</pre>\n\n### 配置管理\n为了最大程度复用和分离平台与端的耦合，配置采用三层配置并使用继承与复写来\n- 公共配置：`core/constants/configs` - 该配置影响全平台\n- 项目配置：`views/{platform}/public/configs.ts` - 影响某平台（不分端），在此配置中引用公共配置，并向下导出\n- 客户端配置：`views/{platform}/{client}/configs.ts` - 影响单平台单端，在此配置中引用项目配置\n\n例：全平台公共配置 DEFAULT_AGENT_CODE，但其中A平台有URL差异，则在【项目配置】中进行变量复写\n```javascript\nimport CONFIG from '@constants/configs';\n\nexport const DEFAULT_AGENT_CODE = '000222'\n\nexport default {\n  ...CONFIG,\n DEFAULT_AGENT_CODE\n}\n```\n相同，如果只是客户端级别差异，则在【客户端配置】中进行复写\n\n### 别名\n对于不同工程的私有路径，如何在公共组件中进行区分，例如：\nKMG前台平台配置文件路径：`src/views/kmg/desktop/config.ts`\nKMG后台配置文件路径：`src/views/kmg-backend/desktop/config.ts`\n在公共组件中要使用对应的配置文件就需要用到别名进行处理\n```javascript\n\n// projects.config.js\nconst kmg = {\n  client: client === 'pc' ? 'desktop' : 'mobile',\n  base: 'mc',\n}\n\n// webpack\nconst alias = {\n  '@this': path.join(__dirname, `../src/views/${CONFIG.base}/${CONFIG.client}`)\n}\n\n// component\nimport CONFIGS from '@this/config'\n```\n\n### 接口缓存\n对于接口数据缓存，添加了以下参数进行拓展：\n```javascript\n/**\n * 请求缓存相关\n * @param expires      缓存时间 单位 分钟\n * @param forward      当有缓存数据时，是否仍然请求去更新当前缓存\n * @param isUserBind   该缓存是否绑定当前用户\n * @param cacheClear   是否弃用当前缓存数据，重新缓存\n */\n```\n### 接口超时处理\n接口超时处理如下图所示：\n```javascript\n/**\n * 请求超时相关\n * @param timeout         自定义超时时间 单位 s\n * @param timeoutCallback 自定义超时回调函数\n * @param maxRetry        最大重试次数\n */\n```\n![avatar](./assets/markdown/timeout.png)\n\n### 页面白屏异常处理\n对于页面/子组件在render过程中发成报错造成的白屏，针对多个项目在 `/views/$client/components/PageHOC` 中使用 class component 中 `componentDidCatch` 生命周期将其捕获，后经\n`/views/$client/pages/Error` 将其错误信息进行友好抛出，核心代码如下：\n```javascript\nclass ErrorHandler extends React.Component {\n\n  constructor(props: any) {\n    super(props);\n    this.state = { hasError: false };\n  }\n\n  componentDidCatch(error: any) {\n    this.setState({ hasError: error })\n  }\n\n  render() {\n    if ((this.state as any).hasError) {\n      return <ErrorScreen log={(this.state as any).hasError} />\n    }\n    return (this.props as any).children\n  }\n}\n```\n\n### React HOOK\nReact hook作为本次重构的核心，在解耦合中起了重要的作用，已将在class component中以下部分移植到HOOK中\n- 所有HOC相关的操作\n- 所有services的操作\n- 不区分客户端的组件生命周期管理\n- redux相关操作\n- `aHook` 库作为常用的 hook 被添加使用  [官方文档](https://ahooks.js.org/guide)\n\n### 样式管理\n#### 目录\n对于大多数【页面】/【组件】，在同一目录下都一一对应一个style scss文件相依赖，例如：\n- 首页 `home/index.tsx` 在其同一目录中 `home/style.scss` 与之对应\n- banner `template/desktop/components/banner/index.tsx` 在其同一目录中 `/style.scss` 与之对应\n\n#### 主要的依赖结构\n![avatar](./assets/markdown/scss.png)\n\n#### 模块化\n为了避免相同className导致不同组件间样式冲突，每个组件或者页面都使用css模块化进行root节点类命名\n```scss\n:local(.wrapper){\n\n}\n```\n```javascript\nimport css from './style.scss';\nreturn (\n  <div className={css.wrapper}>\n  </div>\n)\n```\n\n#### 头部引用规范\n对于依赖引用，应按照如下顺序从上之下进行引用\n- ts定义文件 `import { TAction } from './_actionTypes.d.ts'`\n- 第三方库 `import dayJs from 'dayjs'` / `import QR from 'qrcode.react'` etc..\n- 逻辑层HOOK `import useLogin from '@hooks/useLogin'`\n- 组件 `import Popup from '@this/shadow/Popup'` / `import Child from '../Child'` etc...\n- 帮助/全局类 `import G from '@constants/global'` / `import { formatDate } from '@helpers/unit'` etc...\n- 样式 `import css from './style.scss'`\n一个相对完整的示例如下：\n```javascript\nimport { TAction } from './_actionTypes.d.ts'\nimport { useParams } from 'react-router';\nimport usePromotion from \"@core/hooks/usePromotion\";\nimport usePublicState from \"@core/hooks/usePublicState\";\nimport PageHOC from \"@this/components/PageHOC\";\nimport { SkeletonLoader, NoData } from '@this/shadow/Loading';\nimport Banner from '@this/shadow/Banner';\nimport Select from '@this/shadow/Select';\nimport G from '@constans/global'\nimport css from './style.scss';\n```\n\n#### 文件注释规范\n推荐使用VS Code头部注释插件：【koroFileHeader】并添加以下配置到 IDE SETTINGS 中\n```JSON\n// 头部注释\n\"fileheader.customMade\": {\n  \"Author\": \"${your name}.GE\",\n  \"Date\": \"Do not edit\",\n  \"LastEditors\": \"${your name}.GE\",\n  \"FilePath\": \"Do not edit\",\n  \"Description\": \"\",\n},\n// 函数注释\n\"fileheader.cursorMode\": {\n  \"Author\": \"${your name}.GE\",\n  \"Date\": \"Do not edit\",\n  \"description\": \"\",\n  \"param\": \"\",\n  \"return\": \"\",\n},\n```\n\n#### CLI 子工程\n\n\n#### 影子组件\n\n\n#### 公共组件样式差异化\n\n\n#### 公共组件结构（功能）差异化\n\n\n#### redux store 状态差异化\n\n\n#### 国际化\n\n\n#### 开发新平台步骤\n\n\n#### 约束（以下行为在开发过程中不允许出现）\n\n\n#### 其他规范\n","readmeFilename":"README.md","description":"### 技术栈 框架体系： `react - v1.18.12 / redux / typescript - v4.0`"}