npmapps 1.1.6 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +41 -0
  2. package/files/part-002 +4 -0
  3. package/get.js +193 -0
  4. package/manifest.json +28 -0
  5. package/package.json +17 -10
  6. package/PUBLISH.md +0 -268
  7. package/app/wujie-wk/dev.log +0 -1979
  8. package/app/wujie-wk/t.html +0 -90
  9. package/app/wujie-wk/wujie-react-child/README.md +0 -126
  10. package/app/wujie-wk/wujie-react-child/eslint.config.js +0 -28
  11. package/app/wujie-wk/wujie-react-child/index.html +0 -13
  12. package/app/wujie-wk/wujie-react-child/package-lock.json +0 -4344
  13. package/app/wujie-wk/wujie-react-child/package.json +0 -32
  14. package/app/wujie-wk/wujie-react-child/public/vite.svg +0 -1
  15. package/app/wujie-wk/wujie-react-child/src/App.css +0 -0
  16. package/app/wujie-wk/wujie-react-child/src/App.tsx +0 -72
  17. package/app/wujie-wk/wujie-react-child/src/assets/react.svg +0 -1
  18. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.css +0 -63
  19. package/app/wujie-wk/wujie-react-child/src/components/FeatureCards.tsx +0 -112
  20. package/app/wujie-wk/wujie-react-child/src/components/LightCard/index.tsx +0 -36
  21. package/app/wujie-wk/wujie-react-child/src/components/LightCard/style.css +0 -20
  22. package/app/wujie-wk/wujie-react-child/src/hooks/use3DCard.ts +0 -53
  23. package/app/wujie-wk/wujie-react-child/src/hooks/useLightCard.ts +0 -141
  24. package/app/wujie-wk/wujie-react-child/src/index.css +0 -0
  25. package/app/wujie-wk/wujie-react-child/src/main.tsx +0 -8
  26. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.css +0 -55
  27. package/app/wujie-wk/wujie-react-child/src/pages/ChildToParent/index.tsx +0 -88
  28. package/app/wujie-wk/wujie-react-child/src/pages/Css.tsx +0 -28
  29. package/app/wujie-wk/wujie-react-child/src/pages/Home.tsx +0 -72
  30. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.css +0 -85
  31. package/app/wujie-wk/wujie-react-child/src/pages/ParentToChild.tsx +0 -119
  32. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.css +0 -61
  33. package/app/wujie-wk/wujie-react-child/src/pages/RouterJump/index.tsx +0 -87
  34. package/app/wujie-wk/wujie-react-child/src/router/index.tsx +0 -63
  35. package/app/wujie-wk/wujie-react-child/src/types/wujie.d.ts +0 -26
  36. package/app/wujie-wk/wujie-react-child/src/vite-env.d.ts +0 -1
  37. package/app/wujie-wk/wujie-react-child/tsconfig.app.json +0 -26
  38. package/app/wujie-wk/wujie-react-child/tsconfig.json +0 -7
  39. package/app/wujie-wk/wujie-react-child/tsconfig.node.json +0 -24
  40. package/app/wujie-wk/wujie-react-child/vite.config.ts +0 -10
  41. package/app/wujie-wk/wujie-vue2-child/.eslintrc.js +0 -19
  42. package/app/wujie-wk/wujie-vue2-child/README.md +0 -24
  43. package/app/wujie-wk/wujie-vue2-child/babel.config.js +0 -5
  44. package/app/wujie-wk/wujie-vue2-child/docs/superpowers/plans/2026-05-29-quill-editor.md +0 -836
  45. package/app/wujie-wk/wujie-vue2-child/docs/superpowers/specs/2026-05-29-quill-editor-design.md +0 -210
  46. package/app/wujie-wk/wujie-vue2-child/jsconfig.json +0 -19
  47. package/app/wujie-wk/wujie-vue2-child/package-lock.json +0 -21333
  48. package/app/wujie-wk/wujie-vue2-child/package.json +0 -63
  49. package/app/wujie-wk/wujie-vue2-child/postcss.config.js +0 -10
  50. package/app/wujie-wk/wujie-vue2-child/public/favicon.ico +0 -0
  51. package/app/wujie-wk/wujie-vue2-child/public/index.html +0 -17
  52. package/app/wujie-wk/wujie-vue2-child/public/rili.jpg +0 -0
  53. package/app/wujie-wk/wujie-vue2-child/public//344/270/200/351/224/256/351/273/221/346/232/227.html +0 -136
  54. package/app/wujie-wk/wujie-vue2-child/src/App.vue +0 -110
  55. package/app/wujie-wk/wujie-vue2-child/src/assets/bpmn-camunda.jpg +0 -0
  56. package/app/wujie-wk/wujie-vue2-child/src/assets/css/diagram.less +0 -17
  57. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/Icon.less +0 -31
  58. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app-codes.css +0 -26
  59. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.eot +0 -0
  60. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.svg +0 -60
  61. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.ttf +0 -0
  62. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff +0 -0
  63. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/app.woff2 +0 -0
  64. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/config.json +0 -248
  65. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-bottom-tool.svg +0 -30
  66. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-horizontal-center-tool.svg +0 -85
  67. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-left-tool.svg +0 -84
  68. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-right-tool.svg +0 -80
  69. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-top-tool.svg +0 -84
  70. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/align-vertical-center-tool.svg +0 -89
  71. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-horizontally-tool.svg +0 -95
  72. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/distribute-vertically-tool.svg +0 -99
  73. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/raw/set-color-tool.svg +0 -111
  74. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-bottom-tool.svg +0 -30
  75. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-horizontal-center-tool.svg +0 -30
  76. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-left-tool.svg +0 -30
  77. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-right-tool.svg +0 -30
  78. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-top-tool.svg +0 -30
  79. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/align-vertical-center-tool.svg +0 -30
  80. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-horizontally-tool.svg +0 -30
  81. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/distribute-vertically-tool.svg +0 -30
  82. package/app/wujie-wk/wujie-vue2-child/src/assets/icon/font/source/symbols/set-color-tool.svg +0 -63
  83. package/app/wujie-wk/wujie-vue2-child/src/assets/logo.png +0 -0
  84. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/README.md +0 -70
  85. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/article.md +0 -184
  86. package/app/wujie-wk/wujie-vue2-child/src/components/EllTable/index.js +0 -213
  87. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CalendarSkeleton.vue +0 -147
  88. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/CodeBlock.vue +0 -199
  89. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/MonthSelect.vue +0 -376
  90. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/README.md +0 -485
  91. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/example.vue +0 -1747
  92. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/index.vue +0 -2720
  93. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/mockData.js +0 -475
  94. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/recruitmentAdapter.js +0 -51
  95. package/app/wujie-wk/wujie-vue2-child/src/components/EventCalendar/utils.js +0 -202
  96. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/FunctionSelector.vue +0 -123
  97. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/OperatorSelector.vue +0 -184
  98. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/ParameterSelector.vue +0 -123
  99. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/api.js +0 -69
  100. package/app/wujie-wk/wujie-vue2-child/src/components/FormulaEditor/index.vue +0 -435
  101. package/app/wujie-wk/wujie-vue2-child/src/components/HelloWorld.vue +0 -58
  102. package/app/wujie-wk/wujie-vue2-child/src/components/PageHeader/index.vue +0 -158
  103. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/README.md +0 -144
  104. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/example.vue +0 -84
  105. package/app/wujie-wk/wujie-vue2-child/src/components/Splitter/index.vue +0 -203
  106. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/ToolBar.vue +0 -357
  107. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/customTranslate.js +0 -12
  108. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/customTranslate/translationsGerman.js +0 -241
  109. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/index.vue +0 -261
  110. package/app/wujie-wk/wujie-vue2-child/src/components/diagram/xmlData.js +0 -29
  111. package/app/wujie-wk/wujie-vue2-child/src/directives/filldown.js +0 -155
  112. package/app/wujie-wk/wujie-vue2-child/src/directives/filldownTable.js +0 -291
  113. package/app/wujie-wk/wujie-vue2-child/src/main.js +0 -40
  114. package/app/wujie-wk/wujie-vue2-child/src/router/index.js +0 -72
  115. package/app/wujie-wk/wujie-vue2-child/src/store/index.js +0 -23
  116. package/app/wujie-wk/wujie-vue2-child/src/utils/winBox.js +0 -23
  117. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/A.vue +0 -12
  118. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/B.vue +0 -10
  119. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/MagicalComponentsForELFormItem.vue +0 -78
  120. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/index.vue +0 -59
  121. package/app/wujie-wk/wujie-vue2-child/src/views/Extend/tableMouseHorizontalWheel.vue +0 -184
  122. package/app/wujie-wk/wujie-vue2-child/src/views/Home.vue +0 -27
  123. package/app/wujie-wk/wujie-vue2-child/src/views/RouterJump.vue +0 -145
  124. package/app/wujie-wk/wujie-vue2-child/src/views/calendar/index.vue +0 -19
  125. package/app/wujie-wk/wujie-vue2-child/src/views/css.vue +0 -57
  126. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/EllipsisText.vue +0 -73
  127. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/HoverCard.vue +0 -69
  128. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/TableHover.vue +0 -130
  129. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/inputSlo.vue +0 -42
  130. package/app/wujie-wk/wujie-vue2-child/src/views/cssComponents/tableFixed.vue +0 -148
  131. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/echart-dome.vue +0 -73
  132. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/index.vue +0 -118
  133. package/app/wujie-wk/wujie-vue2-child/src/views/echarts/pei3d.vue +0 -658
  134. package/app/wujie-wk/wujie-vue2-child/src/views/element/bpmn/index.vue +0 -15
  135. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceCycle/index.vue +0 -131
  136. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendanceGroup/index.vue +0 -147
  137. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/attendancePersonnel/index.vue +0 -158
  138. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/companyCalendar/index.vue +0 -147
  139. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shift/index.vue +0 -147
  140. package/app/wujie-wk/wujie-vue2-child/src/views/element/components/shiftRotationSystem/index.vue +0 -147
  141. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/columnManagement.vue +0 -340
  142. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/dialogInput.vue +0 -71
  143. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/elTableJsx.vue +0 -1826
  144. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/formTable.vue +0 -595
  145. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/index.vue +0 -29
  146. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx/simpleTable.vue +0 -189
  147. package/app/wujie-wk/wujie-vue2-child/src/views/element/elTableJsx.zip +0 -0
  148. package/app/wujie-wk/wujie-vue2-child/src/views/element/index.vue +0 -39
  149. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/README.md +0 -163
  150. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/example.vue +0 -307
  151. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/index.vue +0 -409
  152. package/app/wujie-wk/wujie-vue2-child/src/views/element/quillEditor/toolbar.js +0 -122
  153. package/app/wujie-wk/wujie-vue2-child/vue.config.js +0 -15
  154. package/app/wujie-wk/wujie-vue3-child/.claude/settings.local.json +0 -8
  155. package/app/wujie-wk/wujie-vue3-child/.vscode/extensions.json +0 -3
  156. package/app/wujie-wk/wujie-vue3-child/PROJECT_MEMORY.md +0 -427
  157. package/app/wujie-wk/wujie-vue3-child/README.md +0 -5
  158. package/app/wujie-wk/wujie-vue3-child/index.html +0 -13
  159. package/app/wujie-wk/wujie-vue3-child/package-lock.json +0 -5744
  160. package/app/wujie-wk/wujie-vue3-child/package.json +0 -28
  161. package/app/wujie-wk/wujie-vue3-child/public/vite.svg +0 -1
  162. package/app/wujie-wk/wujie-vue3-child/src/App.vue +0 -130
  163. package/app/wujie-wk/wujie-vue3-child/src/assets/vue.svg +0 -1
  164. package/app/wujie-wk/wujie-vue3-child/src/components/HelloWorld.vue +0 -43
  165. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/index.jsx +0 -224
  166. package/app/wujie-wk/wujie-vue3-child/src/components/SmartAnchorTabs/style.css +0 -154
  167. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view.vue +0 -193
  168. package/app/wujie-wk/wujie-vue3-child/src/components/tags-view1.vue +0 -131
  169. package/app/wujie-wk/wujie-vue3-child/src/directives/aiLoading.js +0 -182
  170. package/app/wujie-wk/wujie-vue3-child/src/hooks/useClickOutside.js +0 -11
  171. package/app/wujie-wk/wujie-vue3-child/src/hooks/useTableDragSort.js +0 -28
  172. package/app/wujie-wk/wujie-vue3-child/src/main.js +0 -18
  173. package/app/wujie-wk/wujie-vue3-child/src/router/index.js +0 -104
  174. package/app/wujie-wk/wujie-vue3-child/src/store/tagsViewStroe.js +0 -34
  175. package/app/wujie-wk/wujie-vue3-child/src/style.css +0 -171
  176. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.jsx +0 -108
  177. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/collapseExpand/index.module.scss +0 -97
  178. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/README.md +0 -836
  179. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/REFLEX_EXAMPLES.md +0 -728
  180. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.jsx +0 -687
  181. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentPersonnelSelector.module.scss +0 -560
  182. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.jsx +0 -570
  183. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelector.module.scss +0 -330
  184. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.jsx +0 -378
  185. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/DepartmentSelectorV2.module.scss +0 -228
  186. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.jsx +0 -399
  187. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/OptionsSelector.module.scss +0 -252
  188. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.jsx +0 -585
  189. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PersonnelSelector.module.scss +0 -331
  190. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.jsx +0 -392
  191. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/PopoverSelector.module.scss +0 -39
  192. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/README.md +0 -248
  193. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/components/SelectorTrigger.jsx +0 -194
  194. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/index.jsx +0 -1459
  195. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/departmentPersonnel/mockData.js +0 -301
  196. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.jsx +0 -182
  197. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/dialogueSegment/index.module.scss +0 -28
  198. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/index.jsx +0 -375
  199. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.jsx +0 -121
  200. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ChartsPanel/index.module.scss +0 -76
  201. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/DonutChart/index.jsx +0 -104
  202. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.jsx +0 -75
  203. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/PracticeTable/index.module.scss +0 -12
  204. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.jsx +0 -62
  205. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankBarChart/index.module.scss +0 -43
  206. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.jsx +0 -29
  207. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingGroup/index.module.scss +0 -5
  208. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.jsx +0 -58
  209. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/RankingList/index.module.scss +0 -85
  210. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.jsx +0 -92
  211. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/ScriptStatsPanel/index.module.scss +0 -56
  212. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.jsx +0 -40
  213. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/StatCardsRow/index.module.scss +0 -53
  214. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsDonut.jsx +0 -106
  215. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/components/echarts/EchartsRankBar.jsx +0 -132
  216. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.jsx +0 -176
  217. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/practiceStatus/index.module.scss +0 -96
  218. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.jsx +0 -162
  219. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/CoachReport/index.module.scss +0 -16
  220. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.jsx +0 -29
  221. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ComprehensiveEvaluation/index.module.scss +0 -25
  222. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.jsx +0 -106
  223. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueBubble/index.module.scss +0 -164
  224. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.jsx +0 -182
  225. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DialogueRecord/index.module.scss +0 -203
  226. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.jsx +0 -145
  227. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionDetail/index.module.scss +0 -126
  228. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.jsx +0 -67
  229. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/DimensionScores/index.module.scss +0 -105
  230. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.jsx +0 -81
  231. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ReportHeader/index.module.scss +0 -47
  232. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.jsx +0 -64
  233. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/RoleInfo/index.module.scss +0 -85
  234. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.jsx +0 -39
  235. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/ScoreBadge/index.module.scss +0 -44
  236. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.jsx +0 -83
  237. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/components/SubDimensionItem/index.module.scss +0 -101
  238. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.jsx +0 -50
  239. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/reportDetail/index.module.scss +0 -25
  240. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.jsx +0 -196
  241. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/index.module.scss +0 -41
  242. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.jsx +0 -183
  243. package/app/wujie-wk/wujie-vue3-child/src/views/aiCoach/scriptTable/inputColumn/index.module.scss +0 -115
  244. package/app/wujie-wk/wujie-vue3-child/src/views/child-to-parent.vue +0 -117
  245. package/app/wujie-wk/wujie-vue3-child/src/views/home.vue +0 -53
  246. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/btnSelect.vue +0 -169
  247. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/btnSelect/index.vue +0 -69
  248. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/com.vue +0 -44
  249. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/dialog.jsx +0 -66
  250. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/index.vue +0 -72
  251. package/app/wujie-wk/wujie-vue3-child/src/views/jsx/props.vue +0 -33
  252. package/app/wujie-wk/wujie-vue3-child/src/views/parent-to-child.vue +0 -225
  253. package/app/wujie-wk/wujie-vue3-child/src/views/phone-code.vue +0 -318
  254. package/app/wujie-wk/wujie-vue3-child/src/views/router-jump.vue +0 -123
  255. package/app/wujie-wk/wujie-vue3-child/src/views/test.vue +0 -192
  256. package/app/wujie-wk/wujie-vue3-child/vite.config.js +0 -15
  257. package/app/wujie-wk/wujie-vue3-child copy/.vscode/extensions.json +0 -3
  258. package/app/wujie-wk/wujie-vue3-child copy/README.md +0 -5
  259. package/app/wujie-wk/wujie-vue3-child copy/index.html +0 -13
  260. package/app/wujie-wk/wujie-vue3-child copy/package-lock.json +0 -4617
  261. package/app/wujie-wk/wujie-vue3-child copy/package.json +0 -22
  262. package/app/wujie-wk/wujie-vue3-child copy/public/vite.svg +0 -1
  263. package/app/wujie-wk/wujie-vue3-child copy/src/App.vue +0 -124
  264. package/app/wujie-wk/wujie-vue3-child copy/src/assets/vue.svg +0 -1
  265. package/app/wujie-wk/wujie-vue3-child copy/src/components/HelloWorld.vue +0 -43
  266. package/app/wujie-wk/wujie-vue3-child copy/src/main.js +0 -12
  267. package/app/wujie-wk/wujie-vue3-child copy/src/router/index.js +0 -84
  268. package/app/wujie-wk/wujie-vue3-child copy/src/style.css +0 -4
  269. package/app/wujie-wk/wujie-vue3-child copy/src/views/child-to-parent.vue +0 -117
  270. package/app/wujie-wk/wujie-vue3-child copy/src/views/home.vue +0 -53
  271. package/app/wujie-wk/wujie-vue3-child copy/src/views/parent-to-child.vue +0 -225
  272. package/app/wujie-wk/wujie-vue3-child copy/src/views/phone-code.vue +0 -318
  273. package/app/wujie-wk/wujie-vue3-child copy/src/views/router-jump.vue +0 -115
  274. package/app/wujie-wk/wujie-vue3-child copy/src/views/test.vue +0 -192
  275. package/app/wujie-wk/wujie-vue3-child copy/vite.config.js +0 -10
  276. package/app/wujie-wk/wujie-vue3-main/.vscode/extensions.json +0 -3
  277. package/app/wujie-wk/wujie-vue3-main/README.md +0 -154
  278. package/app/wujie-wk/wujie-vue3-main/index.html +0 -13
  279. package/app/wujie-wk/wujie-vue3-main/package-lock.json +0 -4736
  280. package/app/wujie-wk/wujie-vue3-main/package.json +0 -25
  281. package/app/wujie-wk/wujie-vue3-main/public/vite.svg +0 -1
  282. package/app/wujie-wk/wujie-vue3-main/src/App.vue +0 -879
  283. package/app/wujie-wk/wujie-vue3-main/src/assets/vue.svg +0 -1
  284. package/app/wujie-wk/wujie-vue3-main/src/components/HelloWorld.vue +0 -43
  285. package/app/wujie-wk/wujie-vue3-main/src/components/WujieReact/index.vue +0 -20
  286. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue2/index.vue +0 -8
  287. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3/index.vue +0 -8
  288. package/app/wujie-wk/wujie-vue3-main/src/components/WujieVue3Copy/index.vue +0 -8
  289. package/app/wujie-wk/wujie-vue3-main/src/main.js +0 -23
  290. package/app/wujie-wk/wujie-vue3-main/src/router/index.js +0 -88
  291. package/app/wujie-wk/wujie-vue3-main/src/store/useMicroAppStore.js +0 -66
  292. package/app/wujie-wk/wujie-vue3-main/src/style.css +0 -3
  293. package/app/wujie-wk/wujie-vue3-main/src/views/home.vue +0 -103
  294. package/app/wujie-wk/wujie-vue3-main/src/views/router-jump.vue +0 -159
  295. package/app/wujie-wk/wujie-vue3-main/src/views/test.vue +0 -125
  296. package/app/wujie-wk/wujie-vue3-main/src/views/vue3-child-msg.vue +0 -108
  297. package/app/wujie-wk/wujie-vue3-main/vite.config.js +0 -12
package/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # npmapps 数据包
2
+
3
+ 本版本 `1.3.1` 是 **第 1 批:夸克网盘1789827579179.apk** 的第 2/2 片。
4
+
5
+ 说明:测试
6
+
7
+ ## 取回这一批文件
8
+
9
+ 在想保存文件的目录下执行(只需要能访问淘宝源):
10
+
11
+ ```bash
12
+ npx -y --registry=https://registry.npmmirror.com npmapps@1.3.0
13
+ ```
14
+
15
+ 脚本会下载这一批的全部分片,逐片校验 SHA-256,拼接后还原成原文件名。
16
+
17
+ <details><summary>不用 npx,手动下载合并</summary>
18
+
19
+ 逐个下载下面的 tgz,解压后按顺序拼接 `package/files/part-NNN`:
20
+
21
+ - 第 1 片:https://registry.npmmirror.com/npmapps/-/npmapps-1.3.0.tgz(SHA-256 `fbaa807fd248f3c326793cecbe3d6cabde4ac4e1213050dad055b0a8e5d1a4ce`)
22
+ - 第 2 片:https://registry.npmmirror.com/npmapps/-/npmapps-1.3.1.tgz(SHA-256 `ae9158de39da693d1ca3ff8778cd8b7b333908f186448f23de19f259d59ac69c`)
23
+
24
+ macOS / Linux:`cat part-001 part-002 … > 原文件名`;Windows:`copy /b part-001+part-002 原文件名`。
25
+
26
+ 整个文件的 SHA-256:`49aa2b536a45c70492286d9098a57acc7eed15b418469fe11a9c8ca277696ff7`
27
+
28
+ </details>
29
+
30
+ ## 全部批次目录
31
+
32
+ > 每次发布都会更新这份目录。需要哪一批,复制对应的下载命令即可。
33
+
34
+ ### 第 1 批:夸克网盘1789827579179.apk
35
+
36
+ - 说明:测试
37
+ - 大小:110.0 MB,2 片,版本 `1.3.0 ~ 1.3.1`
38
+ - 发布时间:—
39
+ - SHA-256:`49aa2b536a45c70492286d9098a57acc7eed15b418469fe11a9c8ca277696ff7`
40
+ - 下载:`npx -y --registry=https://registry.npmmirror.com npmapps@1.3.0`
41
+
package/files/part-002 ADDED
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/files/part-002
3
+ size: 36725964 bytes
4
+ sha256: ae9158de39da693d1ca3ff8778cd8b7b333908f186448f23de19f259d59ac69c
package/get.js ADDED
@@ -0,0 +1,193 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * npmapps 分包下载合并脚本(随每个分片一起发布,纯 Node,无依赖)。
4
+ *
5
+ * 用法:在想保存文件的目录下执行(只需要能访问淘宝源)
6
+ * npx -y --registry=https://registry.npmmirror.com npmapps@<这一批里任意一个版本号>
7
+ * 也可以解压某个分片后执行:
8
+ * node package/get.js [--registry=源地址] [--out=保存目录]
9
+ *
10
+ * 流程:读 manifest.json 拿到这一批全部分片的版本号和 SHA-256
11
+ * → 本包自带的分片直接读,其余分片从源下载 tgz 并解出分片文件
12
+ * → 逐片校验 SHA-256 → 按顺序拼接 → 校验整个文件的 SHA-256 → 改回原文件名。
13
+ */
14
+ 'use strict'
15
+
16
+ const fs = require('fs')
17
+ const path = require('path')
18
+ const zlib = require('zlib')
19
+ const crypto = require('crypto')
20
+ const https = require('https')
21
+ const http = require('http')
22
+
23
+ const manifest = require('./manifest.json')
24
+ const self = require('./package.json')
25
+ const PKG = manifest.package || self.name
26
+ const MIRROR = 'https://registry.npmmirror.com'
27
+
28
+ function argValue(name) {
29
+ const hit = process.argv.find((a) => a.indexOf('--' + name + '=') === 0)
30
+ return hit ? hit.slice(name.length + 3) : ''
31
+ }
32
+
33
+ // 源地址:命令行 --registry 优先;其次是 npx 传进来的 npm_config_registry;
34
+ // 另一台电脑只能访问淘宝源,所以没有显式指定时,官方源一律换成淘宝源。
35
+ function pickRegistry() {
36
+ let r = argValue('registry')
37
+ if (!r) {
38
+ r = process.env.npm_config_registry || MIRROR
39
+ if (/registry\.npmjs\.org/.test(r)) r = MIRROR
40
+ }
41
+ return r.replace(/\/+$/, '')
42
+ }
43
+
44
+ function sha256(buf) {
45
+ return crypto.createHash('sha256').update(buf).digest('hex')
46
+ }
47
+
48
+ function formatSize(n) {
49
+ const units = ['B', 'KB', 'MB', 'GB', 'TB']
50
+ let i = 0
51
+ while (n >= 1024 && i < units.length - 1) {
52
+ n /= 1024
53
+ i++
54
+ }
55
+ return n.toFixed(i ? 1 : 0) + ' ' + units[i]
56
+ }
57
+
58
+ // 下载为 Buffer,自动跟随跳转(淘宝源的 tgz 会 302 到 CDN),显示进度。
59
+ function download(url, label, redirects) {
60
+ redirects = redirects || 0
61
+ return new Promise((resolve, reject) => {
62
+ const lib = url.indexOf('https:') === 0 ? https : http
63
+ const req = lib.get(url, { headers: { 'User-Agent': 'npmapps-get' } }, (res) => {
64
+ if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
65
+ res.resume()
66
+ if (redirects > 5) return reject(new Error('跳转次数过多'))
67
+ const next = new URL(res.headers.location, url).toString()
68
+ return resolve(download(next, label, redirects + 1))
69
+ }
70
+ if (res.statusCode !== 200) {
71
+ res.resume()
72
+ return reject(new Error('HTTP ' + res.statusCode + ':' + url))
73
+ }
74
+ const total = Number(res.headers['content-length'] || 0)
75
+ const chunks = []
76
+ let got = 0
77
+ let last = 0
78
+ res.on('data', (c) => {
79
+ chunks.push(c)
80
+ got += c.length
81
+ const now = Date.now()
82
+ if (process.stderr.isTTY && now - last > 300) {
83
+ last = now
84
+ const pct = total ? ' ' + Math.floor((got / total) * 100) + '%' : ''
85
+ process.stderr.write('\r ' + label + ' 下载中 ' + formatSize(got) + pct + ' ')
86
+ }
87
+ })
88
+ res.on('end', () => {
89
+ if (process.stderr.isTTY) process.stderr.write('\r' + ' '.repeat(60) + '\r')
90
+ resolve(Buffer.concat(chunks))
91
+ })
92
+ res.on('error', reject)
93
+ })
94
+ req.setTimeout(120000, () => req.destroy(new Error('下载超时(120 秒没有数据)')))
95
+ req.on('error', reject)
96
+ })
97
+ }
98
+
99
+ // 从 npm 的 tgz 里取出指定文件。npm 包是标准 ustar 格式,文件都在 package/ 目录下。
100
+ function extractFromTgz(tgz, wanted) {
101
+ const tar = zlib.gunzipSync(tgz)
102
+ let off = 0
103
+ let paxPath = null
104
+ const field = (h, s, e) => h.toString('utf8', s, e).replace(/\0[\s\S]*$/, '')
105
+ while (off + 512 <= tar.length) {
106
+ const h = tar.slice(off, off + 512)
107
+ if (h.every((b) => b === 0)) break
108
+ let name = field(h, 0, 100)
109
+ const prefix = field(h, 345, 500)
110
+ if (prefix) name = prefix + '/' + name
111
+ const size = parseInt(field(h, 124, 136).trim() || '0', 8)
112
+ const type = String.fromCharCode(h[156])
113
+ const body = tar.slice(off + 512, off + 512 + size)
114
+ off += 512 + Math.ceil(size / 512) * 512
115
+ if (type === 'x') {
116
+ // pax 扩展头:长文件名放在 path= 里,作用于下一个条目
117
+ const m = /\d+ path=([^\n]*)\n/.exec(body.toString('utf8'))
118
+ paxPath = m ? m[1] : null
119
+ continue
120
+ }
121
+ if (type === 'g') continue
122
+ if (paxPath) {
123
+ name = paxPath
124
+ paxPath = null
125
+ }
126
+ if (name === wanted && (type === '0' || type === '\0')) return Buffer.from(body)
127
+ }
128
+ throw new Error('压缩包里没有找到 ' + wanted)
129
+ }
130
+
131
+ // 输出文件已存在时自动加序号,不覆盖已有文件。
132
+ function uniquePath(dir, name) {
133
+ const ext = path.extname(name)
134
+ const base = name.slice(0, name.length - ext.length)
135
+ let p = path.join(dir, name)
136
+ for (let i = 1; fs.existsSync(p); i++) p = path.join(dir, base + '(' + i + ')' + ext)
137
+ return p
138
+ }
139
+
140
+ async function fetchPart(registry, part) {
141
+ const own = path.join(__dirname, part.file)
142
+ if (part.version === self.version && fs.existsSync(own)) return fs.readFileSync(own)
143
+ const url = registry + '/' + PKG + '/-/' + PKG + '-' + part.version + '.tgz'
144
+ let lastErr
145
+ for (let attempt = 1; attempt <= 3; attempt++) {
146
+ try {
147
+ const tgz = await download(url, '第 ' + part.index + ' 片')
148
+ return extractFromTgz(tgz, 'package/' + part.file)
149
+ } catch (e) {
150
+ lastErr = e
151
+ console.error(' 第 ' + part.index + ' 片第 ' + attempt + ' 次下载失败:' + e.message)
152
+ }
153
+ }
154
+ throw lastErr
155
+ }
156
+
157
+ async function main() {
158
+ const registry = pickRegistry()
159
+ const outDir = path.resolve(argValue('out') || process.cwd())
160
+ const parts = manifest.parts
161
+ console.log('npmapps 第 ' + manifest.batch + ' 批:' + manifest.fileName + '(' + formatSize(manifest.size) + ',共 ' + parts.length + ' 片)')
162
+ if (manifest.note) console.log('说明:' + manifest.note)
163
+ console.log('源:' + registry)
164
+ fs.mkdirSync(outDir, { recursive: true })
165
+ const target = uniquePath(outDir, manifest.fileName)
166
+ const temp = target + '.downloading'
167
+ const fd = fs.openSync(temp, 'w')
168
+ const whole = crypto.createHash('sha256')
169
+ try {
170
+ for (const part of parts) {
171
+ const data = await fetchPart(registry, part)
172
+ if (data.length !== part.size || sha256(data) !== part.sha256) {
173
+ throw new Error('第 ' + part.index + ' 片(' + part.version + ')校验失败,文件可能损坏,请重试')
174
+ }
175
+ fs.writeSync(fd, data)
176
+ whole.update(data)
177
+ console.log(' ✔ 第 ' + part.index + '/' + parts.length + ' 片 ' + part.version + ' 已校验')
178
+ }
179
+ } finally {
180
+ fs.closeSync(fd)
181
+ }
182
+ if (whole.digest('hex') !== manifest.sha256) {
183
+ fs.unlinkSync(temp)
184
+ throw new Error('合并后的文件校验失败,请重试')
185
+ }
186
+ fs.renameSync(temp, target)
187
+ console.log('完成:' + target)
188
+ }
189
+
190
+ main().catch((e) => {
191
+ console.error('失败:' + e.message)
192
+ process.exit(1)
193
+ })
package/manifest.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "tool": "npmapps",
3
+ "schema": 1,
4
+ "package": "npmapps",
5
+ "batch": 1,
6
+ "fileName": "夸克网盘1789827579179.apk",
7
+ "size": 115369164,
8
+ "sha256": "49aa2b536a45c70492286d9098a57acc7eed15b418469fe11a9c8ca277696ff7",
9
+ "note": "测试",
10
+ "createdAt": "2026-11-09T22:51:59+08:00",
11
+ "partSize": 78643200,
12
+ "parts": [
13
+ {
14
+ "index": 1,
15
+ "version": "1.3.0",
16
+ "file": "files/part-001",
17
+ "size": 78643200,
18
+ "sha256": "fbaa807fd248f3c326793cecbe3d6cabde4ac4e1213050dad055b0a8e5d1a4ce"
19
+ },
20
+ {
21
+ "index": 2,
22
+ "version": "1.3.1",
23
+ "file": "files/part-002",
24
+ "size": 36725964,
25
+ "sha256": "ae9158de39da693d1ca3ff8778cd8b7b333908f186448f23de19f259d59ac69c"
26
+ }
27
+ ]
28
+ }
package/package.json CHANGED
@@ -1,13 +1,20 @@
1
1
  {
2
- "name": "npmapps",
3
- "version": "1.1.6",
4
- "description": "",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
2
+ "bin": {
3
+ "npmapps": "get.js"
8
4
  },
9
- "keywords": [],
10
- "author": "",
5
+ "description": "npmapps 数据包 第1批:夸克网盘1789827579179.apk(第 2/2 片)",
6
+ "files": [
7
+ "files/",
8
+ "get.js",
9
+ "manifest.json"
10
+ ],
11
11
  "license": "ISC",
12
- "type": "commonjs"
13
- }
12
+ "name": "npmapps",
13
+ "npmapps": {
14
+ "batch": 1,
15
+ "part": 2,
16
+ "parts": 2,
17
+ "sha256": "ae9158de39da693d1ca3ff8778cd8b7b333908f186448f23de19f259d59ac69c"
18
+ },
19
+ "version": "1.3.1"
20
+ }
package/PUBLISH.md DELETED
@@ -1,268 +0,0 @@
1
- # npmapps 发布流程
2
-
3
- > 本机作为「内网文件分发 / 跨设备搬运」工具的 npm 发布会话。包名 `npmapps`,基于公网 npmjs.org。每次发布照本流程做,5-10 分钟跑完。
4
-
5
- ---
6
-
7
- ## 0. 前置检查(30 秒)
8
-
9
- ```bash
10
- cd /Users/wk/Documents/npmapps
11
- cat package.json | grep -E '"(name|version)"'
12
- npm config get registry
13
- ```
14
-
15
- 期望:
16
- - `name: "npmapps"`
17
- - `version: "1.0.<上次版本号>"`
18
- - `registry: https://registry.npmjs.org/`
19
-
20
- 如果 `registry` 是内网,后面所有命令一致,只是发布目标不同。
21
-
22
- ---
23
-
24
- ## 1. 阶段 1:搬运源文件到 `app/`(2-5 分钟)
25
-
26
- ### 1.1 搬整个文件夹(过滤 `node_modules`)
27
-
28
- ```bash
29
- # 源
30
- SRC=/Users/wk/Documents/wk/web/wujie-wk/wujie-vue2-child
31
-
32
- # 目标
33
- DST=/Users/wk/Documents/npmapps/app
34
-
35
- # 同步(过滤 node_modules)
36
- rsync -a --exclude='node_modules' "$SRC/" "$DST/"
37
-
38
- # 删除原目录(完成"移动"语义)
39
- rm -rf "$SRC"
40
-
41
- # 验证:确认没漏
42
- du -sh "$DST"
43
- find "$DST" -type d -name node_modules # 应该无输出
44
- ```
45
-
46
- ### 1.2 搬单个文件(zip / 压缩包 / 二进制)
47
-
48
- ```bash
49
- mv /path/to/some.zip /Users/wk/Documents/npmapps/app/
50
-
51
- # 验证
52
- ls -la /Users/wk/Documents/npmapps/app/some.zip
53
- ```
54
-
55
- ### 1.3 验证 `app/` 状态
56
-
57
- ```bash
58
- ls -la /Users/wk/Documents/npmapps/app
59
- ```
60
-
61
- 确认:
62
- - ✅ `wujie-vue2-child/` 子目录在(整个 Vue2 子应用)
63
- - ✅ `*.zip` 文件在
64
- - ✅ 没有 `node_modules`
65
-
66
- ---
67
-
68
- ## 2. 阶段 2:更新版本号(10 秒)
69
-
70
- ```bash
71
- # 推荐用 npm 内置命令(自动修改 package.json)
72
- npm version patch # 1.0.25 → 1.0.26
73
- # 其它选项:minor → 1.1.0,major → 2.0.0,具体版本号 → 1.0.27
74
-
75
- # 或者手动改 package.json
76
- # "version": "1.0.25" → "1.0.26"
77
-
78
- # 验证
79
- grep '"version"' package.json
80
- ```
81
-
82
- > ⚠️ 注意:`npm version` 默认会 `git commit` + `git tag`。这个项目不是 git 仓库所以没事。如果以后初始化了 git,加 `--no-git-tag-version` 防止自动 commit。
83
-
84
- ---
85
-
86
- ## 3. 阶段 3:预览(20 秒,发布前最后一道检查)
87
-
88
- ```bash
89
- npm pack --dry-run
90
- ```
91
-
92
- 期望输出:
93
- ```
94
- npm notice name: npmapps
95
- npm notice version: 1.0.26
96
- npm notice total files: 109 (大概)
97
- ```
98
-
99
- **重点检查**:
100
- - ⚠️ 警告 `No .npmignore file found, using .gitignore` —— 这个项目外层没 `.gitignore`,npm 会读 `app/wujie-vue2-child/.gitignore`(嵌套目录的 gitignore npm 不读),所以 .codegraph、.DS_Store 之类的不会被自动排除
101
- - ⚠️ 出现 `app/.codegraph/daemon.pid` —— 这是本地 codegraph 索引 daemon 运行时残留文件,会进包。按需决定:
102
- - 想干净:加 `.npmignore`(见附录 A)
103
- - 无所谓:照发,166B 不影响
104
-
105
- ---
106
-
107
- ## 4. 阶段 4:处理 2FA / token(最容易卡住的环节)
108
-
109
- ### 4.1 现状诊断
110
-
111
- ```bash
112
- npm whoami # 应该返回 npm 用户名
113
- npm profile get | grep "two-factor"
114
- ```
115
-
116
- - `npm whoami` 返回用户名 ✅ token 有效
117
- - `two-factor auth: auth-and-writes` ❌ publish 会被 2FA 拦
118
-
119
- ### 4.2 如果 `npm whoami` 401(token 失效)
120
-
121
- 在终端跑(交互式):
122
-
123
- ```
124
- ! npm login
125
- ```
126
-
127
- 走 web flow:浏览器打开,登录授权,完成后 npm 自动把 token 写到 `~/.npmrc`。
128
-
129
- ### 4.3 如果 publish 报 EOTP(2FA 拦下)
130
-
131
- **最快路径 —— 生成 bypass 2FA 的 token**:
132
-
133
- 1. 浏览器打开 https://www.npmjs.com/settings/<用户名>/tokens
134
- 2. **Generate New Token** → 名字随便(例如 `local-publish`)
135
- 3. 类型选 **"Publish"**
136
- 4. **关键:勾上 "Bypass two-factor authentication"** ⚠️ 这步必须勾,否则 publish 仍要 OTP
137
- 5. 复制 token(`npm_xxxxxx...`)
138
- 6. 替换 `~/.npmrc`:
139
-
140
- ```bash
141
- # 备份 + 替换
142
- cp ~/.npmrc ~/.npmrc.bak
143
- # 编辑 ~/.npmrc,把 _authToken 那行的 token 换成新复制的
144
- ```
145
-
146
- 或者直接跑(把新 token 替换成你拿到的):
147
-
148
- ```bash
149
- TOKEN=npm_xxxxxxxx
150
- sed -i '' "s|//registry.npmjs.org/:_authToken=.*|//registry.npmjs.org/:_authToken=$TOKEN|" ~/.npmrc
151
-
152
- # 验证
153
- npm whoami
154
- ```
155
-
156
- ### 4.4 替代方案:从账号层改 2FA 模式
157
-
158
- 如果不想用 bypass token:
159
- 1. 浏览器打开 https://www.npmjs.com/settings/<用户名>/security
160
- 2. Two-Factor Authentication 改成 **"Authorization only"** 或 **Disabled**
161
- 3. 保存(可能需要再输一次 OTP 或点邮件 magic link)
162
- 4. 回来重试 publish
163
-
164
- ---
165
-
166
- ## 5. 阶段 5:真正发布(10 秒)
167
-
168
- ```bash
169
- cd /Users/wk/Documents/npmapps
170
- npm publish
171
- ```
172
-
173
- 成功标志:
174
-
175
- ```
176
- + npmapps@1.0.26
177
- ```
178
-
179
- 失败标志:
180
- - `EOTP`:回到阶段 4.3 换 bypass token
181
- - `E404: PUT ... npmapps`:token 失效,回到阶段 4.2
182
- - `ENEEDAUTH`:同上
183
- - `You do not have permission`:包名在公网被占,需要换名
184
-
185
- ---
186
-
187
- ## 6. 阶段 6:验证(10 秒)
188
-
189
- ```bash
190
- # 1. 查公网版本列表
191
- npm view npmapps versions --json | tail -5
192
- # 期望看到刚发的版本
193
-
194
- # 2. 查发布时间戳
195
- npm view npmapps time --json | grep "<新版本号>"
196
- # 期望: "<新版本号>": "2026-..."
197
-
198
- # 3. 查 tarball 信息
199
- npm view npmapps dist
200
- # 期望:tarball URL 指向新版本
201
- ```
202
-
203
- ---
204
-
205
- ## 7. 收尾(可选,2 分钟)
206
-
207
- ```bash
208
- # 1. 清理 .npmrc 备份
209
- rm -f ~/.npmrc.bak
210
-
211
- # 2. 在 npm 网站 revoke 失效/过期的 token
212
- # https://www.npmjs.com/settings/<用户名>/tokens
213
- # 只保留当前 .npmrc 里的那个,其余全 revoke
214
-
215
- # 3. 检查发布的 tarball 内容
216
- npm pack
217
- tar -tzf npmapps-<新版本号>.tgz | head -20
218
- # 看到不应该出现的文件就清理后再发新版本
219
- ```
220
-
221
- ---
222
-
223
- ## 附录 A:加 `.npmignore` 让发布更干净(可选)
224
-
225
- 如果想排除 `.codegraph`、`.DS_Store`、`package-lock.json`、`dist/` 等:
226
-
227
- ```bash
228
- cat > /Users/wk/Documents/npmapps/.npmignore <<'EOF'
229
- .DS_Store
230
- .codegraph
231
- *.pid
232
- node_modules
233
- package-lock.json
234
- dist
235
- EOF
236
- ```
237
-
238
- 之后 `npm pack --dry-run` 会用这个文件,不再读 `.gitignore`。
239
-
240
- ---
241
-
242
- ## 附录 B:常用命令速查
243
-
244
- | 目的 | 命令 |
245
- |---|---|
246
- | 查包是否被占 | `npm view <name> name version` |
247
- | 查包全部元信息 | `npm view <name> --json` |
248
- | 查自己是谁 | `npm whoami` |
249
- | 查账号 2FA 模式 | `npm profile get` |
250
- | 生成 tarball(不发布) | `npm pack` |
251
- | 预览 tarball 内容 | `npm pack --dry-run` |
252
- | 登录 | `npm login`(交互) |
253
- | 登出 | `npm logout` |
254
- | 撤销发布(24 小时内) | `npm unpublish <pkg>@<version>` ⚠️ 慎用 |
255
- | deprecate 版本 | `npm deprecate <pkg>@<version> "msg"` |
256
-
257
- ---
258
-
259
- ## 附录 C:本次踩过的坑(避坑指南)
260
-
261
- | 坑 | 原因 | 解法 |
262
- |---|---|---|
263
- | `npm whoami` 401 | `~/.npmrc` 里 token 失效 | `npm login` 重新登录 |
264
- | publish E404 | 包名被占,token 无权覆盖 | 确认包归属 / 换名 / 用有 publish 权限的 token |
265
- | publish EOTP | 账号 `auth-and-writes` 2FA 模式 | 生成 **bypass 2FA** 的 token,或网站改 2FA 模式 |
266
- | tarball 里有 `.codegraph/` | 外层没 `.gitignore`/`.npmignore` | 加 `.npmignore`(附录 A),或接受 166B 的 daemon.pid 跟着发 |
267
- | `npm version` 自动 commit | 项目变成 git 仓库后 | 加 `--no-git-tag-version` 标志 |
268
- | `npmrc` 改了没生效 | 缓存 / 文件权限 | `cat ~/.npmrc` 确认;`chmod 600 ~/.npmrc` |