Browse Source

Merge branch 'dev' into wuguanghui

wuguanghui
wuguanghui 3 weeks ago
parent
commit
ee5ce77d36
  1. 10
      .idea/.gitignore
  2. 67
      .idea/misc.xml
  3. 9
      .idea/new.iml
  4. 6
      .idea/vcs.xml
  5. 52
      .idea/workspace.xml
  6. 45
      10.27孙维宁git学习笔记.txt
  7. 130
      10.28孙维宁git学习笔记.txt
  8. BIN
      10.28学习总结-吴光慧.docx
  9. BIN
      zhangbo/感想.docx
  10. 56
      zhangbo/第一天笔记.txt
  11. 6
      zhangbo/第一天软件学习笔记.txt
  12. 7
      zhangbo/第三天技术学习笔记.txt
  13. 16
      zhangbo/第三天股票知识学习笔记.txt
  14. 28
      zhangbo/第二天技术学习笔记.txt
  15. 44
      zhangbo/第二天知识学习笔记.txt
  16. 16
      zhangbo/第五天技术学习.txt
  17. 54
      zhangbo/第五天股票学习.txt
  18. 45
      zhangbo/第六天技术学习笔记.txt
  19. 35
      zhangbo/第六天股票学习笔记.txt
  20. 4
      zhangbo/第四天技术学习笔记.txt
  21. 63
      zhangbo/第四天股票知识学习笔记.txt
  22. 168
      吴光慧学习笔记/10.30/study1
  23. 8
      吴光慧学习笔记/11.1/hello_vue3/.vscode/settings.json
  24. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/baseline-browser-mapping
  25. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/baseline-browser-mapping.cmd
  26. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/baseline-browser-mapping.ps1
  27. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/browserslist
  28. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/browserslist.cmd
  29. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/browserslist.ps1
  30. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/esbuild
  31. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/esbuild.cmd
  32. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/esbuild.ps1
  33. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-docker
  34. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-docker.cmd
  35. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-docker.ps1
  36. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-inside-container
  37. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-inside-container.cmd
  38. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-inside-container.ps1
  39. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/jsesc
  40. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/jsesc.cmd
  41. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/jsesc.ps1
  42. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/json5
  43. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/json5.cmd
  44. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/json5.ps1
  45. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/nanoid
  46. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/nanoid.cmd
  47. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/nanoid.ps1
  48. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/node-which
  49. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/node-which.cmd
  50. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/node-which.ps1
  51. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all
  52. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all.cmd
  53. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all.ps1
  54. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all2
  55. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all2.cmd
  56. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all2.ps1
  57. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/parser
  58. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/parser.cmd
  59. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/parser.ps1
  60. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/pidtree
  61. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/pidtree.cmd
  62. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/pidtree.ps1
  63. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/rollup
  64. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/rollup.cmd
  65. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/rollup.ps1
  66. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-p
  67. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-p.cmd
  68. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-p.ps1
  69. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-s
  70. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-s.cmd
  71. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-s.ps1
  72. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/semver
  73. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/semver.cmd
  74. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/semver.ps1
  75. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsc
  76. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsc.cmd
  77. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsc.ps1
  78. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsserver
  79. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsserver.cmd
  80. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsserver.ps1
  81. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/update-browserslist-db
  82. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/update-browserslist-db.cmd
  83. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/update-browserslist-db.ps1
  84. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vite
  85. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vite.cmd
  86. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vite.ps1
  87. 16
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vue-tsc
  88. 17
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vue-tsc.cmd
  89. 28
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vue-tsc.ps1
  90. 2161
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.package-lock.json
  91. 15
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/_metadata.json
  92. 3
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/package.json
  93. 12704
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/vue.js
  94. 7
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/vue.js.map
  95. 137
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.vue-global-types/vue_3.5_0.d.ts
  96. 137
      吴光慧学习笔记/11.1/hello_vue3/node_modules/.vue-global-types/vue_99_0.d.ts
  97. 22
      吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/LICENSE
  98. 19
      吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/README.md
  99. 216
      吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/lib/index.js
  100. 1
      吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/lib/index.js.map

10
.idea/.gitignore

@ -1,10 +0,0 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# 依赖于环境的 Maven 主目录路径
/mavenHomeManager.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

67
.idea/misc.xml

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id>JUnit</id>
</State>
<State>
<id>JVM 语言</id>
</State>
<State>
<id>Java</id>
</State>
<State>
<id>Java 5Java 语言级别迁移帮助Java</id>
</State>
<State>
<id>Java 8Java 语言级别迁移帮助Java</id>
</State>
<State>
<id>Java 语言级别迁移帮助Java</id>
</State>
<State>
<id>JavadocJava</id>
</State>
<State>
<id>Spring</id>
</State>
<State>
<id>Spring AOPSpring</id>
</State>
<State>
<id>TestNGJava</id>
</State>
<State>
<id>代码成熟度Java</id>
</State>
<State>
<id>性能Java</id>
</State>
<State>
<id>数值问题Java</id>
</State>
<State>
<id>线程问题Java</id>
</State>
<State>
<id>编译器问题Java</id>
</State>
<State>
<id>详细或冗余的代码结构Java</id>
</State>
</expanded-state>
<selected-state>
<State>
<id>用户定义</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="ms-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

9
.idea/new.iml

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

52
.idea/workspace.xml

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="1250a154-aa13-4278-9e87-904a86c4dbd2" name="更改" comment="11.1" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="sunweining/feature-20251028175924-学习" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"git-widget-placeholder": "dev",
"last_opened_file_path": "D:/study_dbqb/Dbqb_Study/孙维宁学习笔记",
"node.js.selected.package.tslint": "(autodetect)"
}
}]]></component>
<component name="TaskManager">
<task id="LOCAL-00001" summary="11.1">
<option name="closed" value="true" />
<created>1761983013107</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1761983013107</updated>
</task>
<task id="LOCAL-00002" summary="11.1">
<option name="closed" value="true" />
<created>1761983018907</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1761983018907</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="11.1" />
<option name="LAST_COMMIT_MESSAGE" value="11.1" />
</component>
</project>

45
10.27孙维宁git学习笔记.txt

@ -1,45 +0,0 @@
第一天:配置后端环境+git学习部分(笔记+博客园git学习+GeekHour视频到第七个)
git:免费开源的分布式管理系统 使用仓库的数据库来记录文件的变化。
今天的内容:
一、理解了git工作区域:
工作区:你在本地编辑器里改动的代码,所见即所得,里面的内容都是最新的
暂存区:通过 git add 指令,会将你工作区改动的代码提交到暂存区里
本地仓库:通过 git commit 指令,会将暂存区变动的代码提交到本地仓库中,本地仓库位于你的电脑上
远程仓库:远端用来托管代码的仓库,通过 git push 指令,会将本地仓库的代码推送到远程仓库中
二:安装git 去官网下载 然后控制台:git -v 可看到版本号,安装成功。
官网下载安装git客户端管理工具SourceTree
三、熟悉git常见命令
ls 查看文件列表
cat .. 查看文件内容
# 配置用户名
git config --global user.name "sunweining"
# 配置用户邮箱
git config --global user.email "19560775839@163.com"
# 查看当前的配置信息
git config --global --list
# 通过 alias 配置简写
## 例如使用 git co 代替 git checkout
git config --global alias.co checkout
git clone 远程仓库地址 :新建仓库
ls -al 查看仓库
命令举例:工作区———— git add . -- 暂存区 -- git commit(提交本地仓库(暂存区)) -- 本地仓库 (工作区域流程)
git push(提交到远程仓库) 会将本地仓库的内容推送到远程仓库
git pull (拉取远程仓库并合并):会拉取远程仓库并合并到本地仓库,相当于执行 git fetch + git merge
git checkout:切换分支 用于切换分支及撤销工作区内容的修改
git restore:取消缓存 用于将改动从暂存区退回工作区
git reset:回滚代码 用于撤销各种 commit 操作,回滚代码
git status 查看当前仓库状态
git log 查看提交记录 如果加上--online 就是简洁的
echo "这是第一个文件" >file1.txt 现场创建文件成功
222211111
问题:目前我们的git账号还没有开,无法提交git到远程仓库,应该要等明天楼上的老师上班才能上传git学习笔记

130
10.28孙维宁git学习笔记.txt

@ -1,130 +0,0 @@
第二天:git学习部分(笔记+博客园git学习+GeekHour视频第七个到最后)
一、git常见指令补充
(0)快速打开新的终端
(1) git reset 回退版本
三种模式:
git reset --soft 某一个版本 保留工作区和暂存区的所有内容
git reset --hard 某一个版本 丢弃工作区和暂存区的所有内容
git reset --mixed 某一个版本 保留工作区的所有内容,丢弃暂存区的内容
这里实验,分别提交三次,用git log --oneline查看提交历史(三次提交及版本号)
这时,使用cp -rf repo repo-soft可把仓库命令复制,同理hard和mixed三份
git ls-files 查看暂存区的内容
hard模式里,可以用git reset --hard HEAD~ 表示回退上一个版本 别的也可以
mix模式回退后需要再add一下 soft不用
git reflog命令查看操作历史记录
(2)补充基本命令
-命令行指令ls, 列出目录(文件夹)下文件, ls for list
-l, 以每行一个的格式列出文件, l for long
-a, 列出包含隐藏文件的所有文件, a for all
-S, 以文件大小顺序列出文件, S for Size
-t, 以修改日期顺序列出文件, t for time modified
-r, 以倒序列出文件,r for reverse
参数可以叠加,ls-ltr就是每行一条以文件修改日期倒序排列列出文件
-命令行指令mkdir, 新建目录(文件夹), Make Directory
-命令行指令cd, 切换目录(文件夹), Change Directory
cd ~ 跳到自己的home目录(文件夹)
cd../.. 跳到目前目录的上上两层
(3)git diff 查看差异 (一般是用图形化工具)
<1>(工作区和暂存区之间差异)
使用vi修改文件后 git diff 文件名
这里显示index 文件内容哈希值 权限值
红色是删除内容 绿色是添加的内容
<2>工作区与版本库之间
git diff HEAD
<3>暂存区和版本库之间差异(commit 后为空)
git diff --cached
<4> git diff 版本号1 版本号2 比较两个版本差异内容
git diff HEAD~ HEAD 上一个版本和最新版本 Head~2 head之间的第两个版本.....
可以后面加上文件名,只查看指定文件的差异
!!!!!!!!!!!!Head指向分支的最新提交节点,很重要!!!!!!!!!!!!!!
二、git rm 删除文件
-命令行指令rm 用于删除文件、目录, rm for remove
-i 删除前提示, y删除, n不删除
-r 删除一个目录(含所有文件), r for repository -r*包括子目录
-f 强制执行删除操作, f for force
参数可叠加, 如rm -rf 【dir】,直接删除目录
rm file 删除后要add一下,把暂存区也删一下
但是git rm <file> 直接删掉工作区和暂存区的内容
git rm --cached <file> 只删除暂存区
三、.gitignore忽略文件
自动生成 临时 机密...
echo "access.log" > access.log
echo access.log > .gitignore 添加到忽略文件
*.log表示忽略全部日志,但是.gitignore创建,1.log已经在版本库中了,就不行
temp/表示忽略temp文件夹
四、远程仓库管理代码 比如gitee,gitea,github,gitlab
这里提交笔记用的是gitea
git clone http:.. 将远程仓库克隆到本地仓库
添加远程仓库:git remote add <远程仓库别名><远程仓库地址> git push -u <远程仓库名><分支名>
查看远程仓库: git remote -v
git pull 把远程仓库的修改拉取到本地仓库,自动合并,如果不一致就冲突 //git fetch只获取远程仓库的修改 并不会合并 需要手动合并
( git pull <远程仓库名><远程分支名>:<本地分支名> )
git push 把本地仓库的修改推送给远程仓库
四、GUI工具
github-desktop SourceTree 小乌龟 GitKraken
vscode新建终端:ctrl+shift+`
五、分支Branch!!!!!
(1)get branch 到默认的mian分支
之后配合SourceTree使用,打开克隆过的/init过的本地文件夹
(2)创建:get branch dev创建新的分支dev
(3)切换:get checkout dev切换到dev分支上 注意git checkout命令可恢复到我们修改之前的状态,避免歧义
(4)git switch dev 更好用!!只切换分支
(5)合并:git merge合并分支
git log --graph --oneline 查看分支图
(6)删除:
删已经合并的:git branch -d dev
删没有合并的:git branch -D dev
(7)解决合并冲突:
冲突后,进入main或其中分支修改冲突文件,把冲突的杠等去掉,合并冲突内容
添加暂存区 git add file
提交修改 git commit -m "message"
终止合并:get merge --abort
六、回退和rebase
执行merge要在main分支上
恢复分支:git checkout -b dev 提交id
定义指令别名:alias graph="git log --oneline --graph --decorate --all"
git rebase main 将当前的main分支并入到dev分支的后面。
merge:不破坏原分支,方便回溯和查看 产生额外费用.
Rebase:不会新增额外的提交记录,改变了branch out中的节点。避免在共享分支中使用。
七、工作流模型
就是一些比较好的规范和流程,可以让我们的工作更高效,更有条理
比如GitFlow工作流:包含了多个分支 主线:main 线上bug:hotfix 等等
222211111

BIN
10.28学习总结-吴光慧.docx

BIN
zhangbo/感想.docx

56
zhangbo/第一天笔记.txt

@ -0,0 +1,56 @@
1.学习了配置开发环境,后端:JDK17、JDK8、MySQL8.0、Redis7.0、Apipost
2.学习到git的一些指令,例如
初始化仓库
git init
克隆远程仓库
git clone
查看当前状态
git status
添加全部修改到暂存区
git add
提交到本地仓库
git commit -m ""
查看提交历史(精简版)
git log --oneline
查看文件修改差异
git diff
3.学习了建立自己的分支,并且将自己的学习笔记提交到自己的远程分支。
创建新分支
git branch <branch_name>
切换分支
git checkout <branch_name>
创建并切换分支
git checkout -b <new_branch>
合并分支到当前分支
git merge <branch_name>
删除本地分支
git branch -d <branch_name>
强制删除未合并分支
git branch -D <branch_name>
查看所有分支(含远程)
git branch -a
4.Git代码提交步骤
在本地仓库中初始化Git
执行git init命令以创建一个新的Git版本库。
添加文件到暂存区
将需要提交的文件添加到暂存区,使用git add .命令(其中.代表当前目录下的所有文件)。
创建提交记录
创建提交记录,使用git commit -m "提交描述"命令,其中“提交描述”是对本次提交的简要说明。
关联本地与远程仓库
将本地仓库与远程仓库建立关联,执行git remote add origin 你的仓库地址命令,将你的仓库地址替换为实际的远程仓库地址。
通过git push origin master命令将本地的版本库推送到远程服务器。

6
zhangbo/第一天软件学习笔记.txt

@ -0,0 +1,6 @@
homily link第一天学习笔记
首先是夺宝奇兵功能里面有超级云脑,AI预测大模型,AI金牛,AI雷达,AI情绪大模型
还有博股俱乐部,里面包含最先进的投资理念,最尖端的投资技术,为投资人士解析国际经济格局,研判经济发展机遇,包括专享线下活动,专属游学班。
牧民俱乐部专注于对全球市场投资机会进行解读,从多维视角去看市场的机会。以及神枪手俱乐部,借助先进的AI工具,将知识转化成实战力量,有更多的应对策略,实现利润的最大化
在静态专区里面包含了各种学习视频有助于我们的学习。,在频道里面是多种学习视频,以及名师解读课程。
咨询模块,聚焦国际新闻,金融新闻,通过这些可以增加更多的判断依据,在上边栏的里面包含了咨询,普及教育,轻松一刻,以及一些炒股理念的分析,和其他人炒股经验的分析,,提高了用户的参与度和使用的便捷性

7
zhangbo/第三天技术学习笔记.txt

@ -0,0 +1,7 @@
对java后端的知识进行了系统性的学习
包括:Java基本数据类型,面向对象的相关知识,还有流程控制和异常处理
对于集合框架方面,学习了Collection和Map以及他们的实现类,集合的底层原理和线程安全也进行了学习
还学习了泛型,注解和反射,还了解了jvm的内存结构和垃圾回收机制,以及类加载机制。
对昨天学习的数据库的相关知识进行了复习,sql语法增删改查,还有索引,索引失效的情况
事务的隔离级别,锁机制以及存储引擎。
明天计划学习Spring Boot3的相关知识,并且对昨天和今天学到的知识复习

16
zhangbo/第三天股票知识学习笔记.txt

@ -0,0 +1,16 @@
夺宝奇兵超级云脑「云脑探秘」学习笔记10月29日
围绕股票术语与基础知识,系统学习了夺宝奇兵超级云脑的「云脑探秘」模块。 一、夺宝奇兵超级云脑以“服务散户”为核心,通过三层定位构建完整的智能投资辅助体系,解决散户“分析难、决策难、操作难”的痛点。 夺宝奇兵整体定位专为散户设计的智能投资辅助体系,以AI技术为核心,覆盖“价值判断-风险评估-趋势捕捉-资金跟踪-操作决策”全流程。核心价值是将复杂的市场数据(如财报、资金流向)转化为直观、可落地的投资依据,无需散户具备专业分析能力。超级云脑核心定位 整个体系的“智能分析中枢”,聚焦多维度数据拆解与决策支撑。不直接面向散户展示,而是通过计算输出股票估值、安全级别等核心指标,为「云脑探秘」模块提供数据支撑。云脑探秘窗口定位 超级云脑智慧决策的“可视化核心窗口”。对超级云脑的分析结果进行优化升级,将“股票估值、安全级别、压力支撑、趋势研判、庄家成本、情绪价值”六大维度以更醒目、有区分度的形式呈现,是散户直接获取决策信息的入口。
二、超级云脑智慧决策:三大设计逻辑,直击散户痛点,降低投资门槛,覆盖决策全链路。
全维度数据支撑 整合交易所实时行情、上市公司财报、主力资金流向、市场情绪数据四大类信息,确保分析依据“全面且精准”。避免散户因数据不全导致的片面判断(如仅看股价忽略资金流向)。专业术语通俗转化 将“市盈率(PE)、市净率(PB)、支撑线、压力线”等专业术语,转化为散户易懂的“值不值买”“安全不安全”“能不能进场”等结论。无需散户记忆繁杂术语,直接获取核心判断。 投资决策闭环覆盖 从“判断股票价值”到“评估投资风险”,再到“捕捉买卖时机”,完整覆盖散户投资决策的核心环节。提供“一站式辅助”,避免散户因环节缺失导致的决策漏洞(如只看价值忽略趋势)。
三、云脑探秘五大核心模块:功能+术语+解决方案 「云脑探秘」的五大模块分别对应投资决策的不同维度。
1.股票估值:用基本面指标判断“值不值买”。核心功能 基于基本面分析逻辑,AI自动计算市盈率(PE)、市净率(PB)、每股收益(EPS),对比行业均值与历史数据,直接输出“高估/合理/低估”结论。股票术语关联 - 核心指标:市盈率(股价÷每股盈利)、市净率(股价÷每股净资产),是基本面分析中判断股票内在价值的核心依据。
2.安全级别+压力支撑:用风险与价位明确“能不能买、该在哪买” 核心功能 - 安全级别:通过“六色罗盘”划分“极高风险-较高风险-中等风险-较为安全-高安全”五级,明确股票风险敞口。 - 压力支撑:计算股价关键支撑位(下跌止跌价)与压力位(上涨受阻价),标注支撑/压力强度,提示“放量突破”条件。 #### 股票术语关联 - 安全级别:极高风险对应ST股、垃圾股(非系统风险高);高安全对应蓝筹股、绩优股(基本面稳定)。 - 支撑位:技术分析中的“支撑线”,如前期低点、均线位置,买盘集中导致股价止跌。 - 压力位:技术分析中的“压力线”,如前期高点、密集成交区,卖盘集中导致股价回落。 - 放量突破:股价突破压力位时需“成交量放大”(放量上涨),后续上涨趋势更稳固。问题解决方案 - 解决痛点:散户“不敢买(怕风险)、不会卖(怕被套)”,明确安全边界与买卖价位。 - 实操价值:较高安全+强支撑的标的可优先买;接近强压力位时提示止盈/观望,避免追高被套;突破压力位时明确持有条件。
3.趋势研判:用趋势方向决定“该持有还是离场”核心功能 AI区分“中长期趋势”与“短期趋势”,标注“上升/下跌/横盘整理”状态,结合短期强弱(强势/弱势/震荡),提供持仓决策依据。股票术语关联 - 中长期趋势:对应道氏理论“基本运动”(周期1年以上),如牛市上升、熊市下跌。 - 短期趋势:对应道氏理论“次级运动”(3周至数月)或“日常运动”(6-10天),如牛市回调、熊市反弹。 - 趋势依据:均线多头排列(MA5/MA10/MA20向上)=中长期上升;均线空头排列=中长期下跌。 - 顺势而为:契合“趋势交易”理念,避免“逆势操作”(如熊市抄底、牛市割肉)。问题解决方案 - 解决痛点:散户易被日内波动误导,无法判断核心趋势,导致“拿不住牛股、抄底在山腰”。 - 实操价值:中长期上升+短期强势=坚定持有;中长期下跌+短期反弹=反弹后离场;适配价值投资(看长期)与技术派(看短期)需求。
4.庄家成本:用主力筹码判断“自己有没有成本优势”核心功能 通过大数据筹码模型,测算庄家长短期“筹码成本”,标注筹码集中程度,帮助散户对比自身持仓成本与主力成本。股票术语关联 - 庄家:影响股价的机构大户,其吸筹、洗盘、拉升、出货行为直接决定股价走势。 - 筹码成本:庄家吸筹阶段的平均买入价(成本线),散户成本低于主力=具备成本优势。 - 筹码集中:主力吸筹充分,后续拉升概率大;筹码分散=主力可能已出货,风险高。 - 主力出货风险:股价远高于主力成本+筹码分散,对应“主力出货”,需规避回调。
问题解决方案 - 解决痛点:散户难分析龙虎榜、资金流向,无法判断主力意图,导致“跟庄跟不上、被套在高位”。 - 实操价值:成本低于主力+筹码集中=坚定持有;成本高于主力+接近压力位=止盈离场,避免主力出货后深套。
5.情绪价值:用市场情绪避免“追涨杀跌”核心功能 AI情绪大模型捕捉市场情绪,提示“情绪过热/低迷/拐点”,帮助散户克服人性弱点(贪婪、恐惧),理性决策。股票术语关联 - 情绪过热:对应“超买”,市场人气高涨,股价高位,散户易“高点接盘”(如牛市末期追涨)。 - 情绪低迷:对应“超卖”,市场恐慌,股价低位,散户易“割在地板上”(如熊市末期割肉)。 - 情绪拐点:对应“多空转换”,情绪从乐观转谨慎(多头转空头)或恐慌转企稳(空头转多头),是关键买卖信号。 - 情绪与成交量:过热伴“天量”(人气峰值成交量);低迷伴“地量”(市场冷清成交量)。问题解决方案 - 解决痛点:散户易被情绪裹挟,追涨在高点、割肉在低点,无法预判情绪拐点。 - 实操价值:情绪过热=减仓/观望;情绪低迷=持有/低吸;情绪拐点=提前布局(如恐慌转企稳时逢低买),契合“逆向投资”理念。
四、超级云脑实操小手册:从选股到卖出的全流程指南 以“散户实操场景”为核心,将五大模块对应到“选股-买入-持有-卖出”四环节,提供 step-by-step 操作逻辑。
1. 选股环节:锁定优质标的,核心是“选价值、避风险” 目标:排除高风险、高估值标的,筛选有主力支撑的优质股。用“股票估值”排除高估值陷阱,优先选择“低估”或“合理”标的。用“安全级别”划定风险边界,只选“较为安全”及以上等级的标的。用“庄家成本”判断主力态度,优先筹码集中、散户成本低于主力的标的。
2.买入环节:找精准时机,核心是“不追高、买支撑” 目标:避免在情绪高点或高位买入,在安全价位进场。用“压力支撑”找安全买入价,在“强支撑位”附近进场(如股价回调至支撑线)。用“情绪价值”避情绪高点,避开“情绪过热”阶段,选择“情绪稳定”或“低迷企稳”时买入。
3.持有环节:定持仓策略,核心是“顺趋势、跟主力” 目标:坚定持有优质标的,及时识别趋势反转信号。用“趋势研判”看长期方向,中长期上升趋势可坚定持有;中长期下跌趋势需警惕。用“庄家成本+主力资金”看短期动能,筹码持续集中、主力资金流入,可继续持有;筹码分散、资金流出,需减仓。
4. 卖出环节:抓止盈止损点,核心是“不贪多、不扛跌” 目标:及时止盈落袋,避免亏损扩大。用“压力支撑”定止盈点 实操示例:某股票压力位3920.371,当前股价3918,压力强度“一般”。若当日成交量未放大,可在3920附近止盈;若成交量放大突破3920,可持有至下一个压力位。用“情绪价值+支撑位”定止损点 解读:若情绪从“稳定”转为“恐慌”且提示“极端恶化”,同时股价跌破“强支撑位”且支撑强度减弱,需立即止损,避免亏损扩大(如股价跌破支撑线后无反弹,果断离场)。

28
zhangbo/第二天技术学习笔记.txt

@ -0,0 +1,28 @@
阶段性学习总结文档
一、Git 实践
1. 掌握 Git 核心使用方法,包括仓库初始化、代码暂存(`git add`)、提交(`git commit`)、分支管理等基础操作
2. 完成实际应用:将个人作业通过 Git 上传至远程仓库,实现作业代码的版本控制与备份
二、前端基础
1. 学习前端核心知识点(未明确具体模块,暂为基础内容范畴),初步建立前端技术认知
2. 了解前端开发流程与基础工具使用逻辑
三、Redis 技术
1. 掌握 Redis 核心操作,包括数据类型(String、Hash、List 等)的增删改查
2. 学习 Redis 实用技巧,如缓存设计、数据持久化配置、性能优化基础方法
四、Java 基础(系统化学习)
1. 夯实 Java 语法基础,理解变量、方法、流程控制等核心概念
2. 深入学习面向对象三大基本特征:
封装:类的属性私有化与访问控制(get/set 方法)
继承:类的继承规则、方法重写与 super 关键字使用
多态:接口/抽象类应用、方法重载与动态绑定特性
五、MySQL 数据库
1. 掌握 MySQL 基础操作,包括数据库/表创建、SQL 语句(增删改查)编写
2. 学习数据库优化方向:索引设计(主键索引、联合索引等)、SQL 语句优化(避免全表扫描、合理使用关联查询)、表结构设计规范
3. 建立技术选型认知:明确 Redis 与 MySQL 的适用场景差异,知道何时需用 Redis 提升性能(如高频读取数据缓存、会话存储),何时依赖 MySQL 保证数据一致性(如核心业务数据存储)

44
zhangbo/第二天知识学习笔记.txt

@ -0,0 +1,44 @@
对股票知识的进一步学习
熟悉了股票的基础概念(股票是什么)
A股
定义:在中国境内交易所(上海、深圳)上市,以人民币认购和交易的普通股股票。
主要面向境内投资者,是普通人最常参与的股票市场。
股东(大股东/散户)
定义:持有公司股票的人;大股东指持股比例高(通常5%以上)的投资者,散户指个人小资金投资者。
大股东的买卖动作可能影响股价,散户需关注公司公告中的股东变动信息。
二、交易规则类(知道“怎么买/卖”)
1. 开盘价/收盘价
定义:开盘价是交易日9:30开始时的第一笔成交价格;收盘价是15:00收盘时的最后一笔成交价格(深市为集合竞价结果)。
开盘价反映早盘情绪,收盘价是当天行情的“最终结果”,常作为后续分析的基准。
2. 涨停/跌停
定义:A股普通股票单日涨跌幅限制为10%(ST股为5%),达到上限后当天停止单向交易,分别称为涨停、跌停。
涨停不代表不能卖,跌停不代表不能买,只是价格暂时锁定。
3. 成交量/成交额
定义:成交量是当天成交的股票总股数;成交额是当天成交的总金额(成交量×股价)。
成交量放大通常意味着市场关注度提升,是判断“行情是否真实”的重要信号。
三、市场状态类(判断“行情好/坏”)
1. 牛市/熊市
定义:牛市指市场长期(通常半年以上)上涨,投资者情绪乐观;熊市指市场长期下跌,情绪低迷。
牛市多赚钱效应,熊市多亏损风险,新手需避免在熊市高位入场。
2. 大盘/指数
定义:“大盘”通常指上证综指(反映沪市整体)或深证成指(反映深市整体);指数是选取部分股票编制的“市场平均水平指标”。
看大盘指数能快速判断整体市场方向,比如上证综指涨1%,代表沪市多数股票当天上涨。
3. 多头/空头
定义:多头是看好股价上涨、买入股票的投资者;空头是看空股价下跌、卖出股票(或融券做空)的投资者。
当多头力量强于空头时,股价上涨;反之则下跌。
四、收益指标类(看懂“公司值不值”)
这类术语用于分析公司基本面,判断股票价值。
1. 市盈率(PE)
定义:股价÷每股收益(EPS),反映“投资者为公司每1元利润付出的价格”。
PE低通常意味着股票“相对便宜”,但需结合行业对比(比如科技股PE普遍高于银行股)。
2. 每股收益(EPS)
定义:公司净利润÷总股本,反映“每股股票能分到的公司利润”。
EPS持续增长,说明公司盈利能力在提升,是股价上涨的重要支撑。
3. 股息
(每股分红金额÷股价)×100%,反映“持有股票的年度分红收益比例”。
关键理解:股息率高的股票适合追求稳定收益的投资者(如银行股、公用事业股)。

16
zhangbo/第五天技术学习.txt

@ -0,0 +1,16 @@
第五天技术学习规划
1:Spring Boot整合ORM框架(MyBatis/MyBatis-Plus)—— 数据库操作
2:Spring Boot Web开发进阶(解决实际接口问题)
3:学习了异常处理(@ControllerAdvice)
核心需求:统一处理接口异常(如参数校验失败、数据库异常),返回规范的错误格式(避免直接返回默认错误页面)
4:拦截器
5:微服务组件实战深化(
6:Nacos进阶:配置分组与命名空间
7:Seata进阶:事务失败排查与日志分析
8:Dubbo进阶:负载均衡与服务降级
9:AOP高级应用(结合自定义注解)
10:对前几天学习的知识进行整合
11:重点复习
Java集合底层(HashMap与ConcurrentHashMap的区别)、JVM垃圾回收算法、MySQL索引失效场景(如“函数操作索引列”“不等于判断”);
Spring Boot自动配置原理(`@EnableAutoConfiguration`如何加载配置类)、AOP核心概念(切入点与通知的关系);
MyBatis-Plus分页插件原理、Seata事务回滚机制、Dubbo服务降级逻辑。

54
zhangbo/第五天股票学习.txt

@ -0,0 +1,54 @@
AI金牛工具实战解析:N奕材-U的成长股趋势捕捉与信号验证
一、夺宝利剑:成长股启动信号的精准定位
作为AI赋能的简化版趋势工具,夺宝利剑通过“四线分工+信号聚合”的逻辑,在高波动成长股中更能凸显其捕捉启动点的核心价值。以10月28日上市的科创成长股N奕材-U为例,其上市首日涨幅达198.72%、市值突破千亿的强爆发表现,恰好与夺宝利剑的四线信号形成完美呼应,为散户提供了清晰的布局参考。
核心组成与个股适配解读
针对N奕材-U这类半导体赛道成长股,夺宝利剑四条线的信号意义与蓝筹股存在显著差异,需重点关注“短期爆发力与长期基本面的共振”:
天线:对应半导体行业景气度与公司核心竞争力。N奕材-U作为中国内地第一、全球第六的12英寸硅片厂商,产品已适配AI高端芯片供应链,长期产业逻辑扎实,天线自上市起即呈陡峭向上走势,确认长期趋势强势。
飞线:反映市场对产能释放的预期。公司通过IPO募资建设第二工厂,预计2026年全球份额将超10%,中期增长确定性明确,飞线与天线同步向上,形成“产业逻辑+资金预期”的双重支撑。
中线:捕捉新股上市后的短期资金动向。N奕材-U上市首日换手率超60%(科创新股典型特征),中线随资金流入快速上行,且始终位于飞线之上,显示短期承接力强劲。
流线:成长股最关键的“起爆提示线”。上市前的盘前竞价阶段,流线已完成从向下到向上的转向,并快速向其他三线靠拢,开盘后15分钟内即与三线形成交汇,构成明确的启动信号。
核心信号与实战操作逻辑
N奕材-U的案例完美印证了夺宝利剑的“四线共振”法则,其信号特征与操作价值具体体现为:
关键信号:10月28日开盘瞬间,天线、飞线、中线、流线在发行价上方30%区间完成交汇,流线以45度角向上突破其他三线,形成“起爆聚合点”。这一信号与该股作为年内第二大IPO的资金关注度、半导体自主化的产业热度形成三重印证。
使用逻辑:遵循“长期看天线(产业逻辑)、中期看飞线(产能预期)、短期看中线(资金承接)、启动看流线(起爆时机)”的分层判断:天线向上确认赛道价值,飞线同步验证增长确定性,中线不破飞线说明资金未撤离,流线突破则给出精准入场点。
解决的核心痛点:避免散户在新股炒作中“盲目追高”或“错过主升”——四线未交汇时,即便开盘冲高也需观望;交汇信号出现后介入,既抓住了首日198%涨幅的核心波段,又通过天线方向规避了长期风险。
二、AI探牛:成长股趋势强度的双重验证
AI探牛通过“牵牛绳定趋势+K线属性辨多空”的组合逻辑,针对N奕材-U这类高成长新股,重点解决“短期波动与趋势本质的区分”问题。结合其半导体赛道属性与新股波动特征,信号解读需聚焦“趋势确立效率”与“资金动能持续性”两大核心。
指标定义与成长股适配要点
相较于工商银行这类低波动蓝筹,N奕材-U的AI探牛信号解读需强化“短期信号的时效性”,具体指标适配规则如下:
| 指标 | 核心功能 | N奕材-U适配要点 |
|----- -|----------|----------------|
| 牵牛绳 | 标注整体趋势(红=升/绿=降) | 成长股趋势转换快,单日涨幅超50%即可触发绿转红,无需3日确认 |
| 进攻K线(红) | 多方主动发力,涨幅真实有效 | 新股上市首日涨幅≥50%且收盘价站于当日涨幅80%以上为强信号 |
| 推进K线(蓝) | 多方稳步控盘,趋势持续确认 | 上市后次日涨幅≥10%且量能未缩量,视为资金持续流入信号 |
| 防守K线(黄) | 多空博弈临界点,动能衰减 | 单日冲高回落幅度≥15%(即最高价与收盘价差占开盘价15%以上)触发 |
| 撤退K线(青) | 空方主导下跌,趋势转弱 | 单日跌幅≥10%且开盘价为当日最高价,视为短期资金出逃信号 |
10.28-10.30 AI探牛信号全解析
(一)趋势锚点:牵牛绳的快速确认轨迹
转换逻辑:10月28日开盘后,N奕材-U股价从发行价8.62元快速拉升至25元以上,半小时内涨幅突破180%,触发牵牛绳“瞬时转红”(成长股特殊规则);10月29日股价微涨2.3%,绳色维持红色(确认趋势延续);10月30日虽小幅回调3.1%,但未跌破前一日收盘价25.75元,绳色持续为红。
关键结论:N奕材-U当前处于明确的红绳上升趋势,短期回调未触及趋势反转阈值,符合半导体成长股“强趋势下窄幅震荡”的特征。
(二)核心信号组合与实战价值
1. 趋势启动信号(10.28):红绳+超强进攻K线
特征:牵牛绳瞬时转红后,当日收出涨幅198.72%的巨型进攻K线,收盘价25.75元接近当日最高价26.10元,且量能达50亿元(远超同类新股平均水平)。
操作价值:这是成长股的“极致买点”,对应股价从发行价到首日收盘价的翻倍收益,完美捕捉新股上市后的主升波段。
2. 趋势延续信号(10.29):红绳+推进K线
特征:红绳趋势下,当日收涨2.3%的推进K线,量能维持在35亿元(未较前一日大幅萎缩),且股价站稳25元整数关口。
操作价值:确认资金未大规模撤离,可持仓观望后续突破机会,对应股价从25.75元升至26.34元的短期收益。
3. 趋势防守信号(10.30):红绳+弱防守K线
特征:红绳趋势未变,但当日收出冲高回落的防守K线(最高价26.80元,收盘价25.96元,回落幅度3.1%),且量能降至28亿元。
操作价值:提示短期获利盘了结风险,需减仓1/3规避波动,但无需清仓——因红绳未转绿,长期趋势仍受产业逻辑支撑。
三、工具组合应用的实战启示
N奕材-U的案例充分展现了AI金牛两大工具的协同价值:夺宝利剑的“四线交汇”信号精准命中10月28日的起爆点,解决“何时买”的问题;AI探牛的“红绳+K线组合”则持续验证趋势强度,解决“何时持、何时减”的问题。
相较于工商银行的低波动策略,成长股操作需把握两大核心差异:一是夺宝利剑的流线突破信号更具时效性,需在15分钟内快速响应;二是AI探牛的牵牛绳转换更灵敏,无需等待多日确认。对于散户而言,这种“启动点精准定位+趋势强度验证”的组合,能有效降低成长股投资中的“追高站岗”与“过早离场”风险,在半导体等高景气赛道中更能发挥实战价值。

45
zhangbo/第六天技术学习笔记.txt

@ -0,0 +1,45 @@
今天系统地复习了了 Git 版本控制、MySQL 数据库、Java 核心(OOP/集合/JVM/并发)、设计模式等多领域技术,覆盖了从代码管理、数据存储到后端开发的相关知识,形成了完整的技术学习框架。
一、Git 版本控制:代码管理基础
掌握了本地项目与远程仓库的协作流程,核心是“本地初始化→暂存→提交→关联远程→推送”的完整链路,能解决常见推送错误(如权限、URL 配置问题),为团队协作和代码备份提供保障。
本地操作:`git init` 初始化仓库、`git add` 暂存文件、`git commit` 提交更改。
远程协作:`git remote add` 关联远程仓库、`git push` 推送代码,理解 HTTPS/SSH 两种认证方式的差异。
二、MySQL 数据库:数据存储与管理核心
从 SQL 语法、数据类型、表设计到 事务、索引、优化形成了体系化认知,能应对日常数据操作和性能优化需求,是后端开发的核心基础。
1. SQL 基础操作:
掌握增删改查(`INSERT/DELETE/UPDATE/SELECT`),以及排序(`ORDER BY`)、分页(`LIMIT/OFFSET`)、分组(`GROUP BY`+聚合函数)、多表连接(`LEFT/RIGHT/INNER JOIN`)。
2. 数据类型与约束:
理解不同场景下的类型选择(如 `DECIMAL` 存金额、`DATETIME` 存时间),掌握主键/外键/唯一/非空约束的作用,保证数据完整性。
3. 事务与隔离级别:
明确事务 ACID 特性,理解并发事务的三大问题(脏读、不可重复读、幻读),掌握 4 种隔离级别的适用场景(如 MySQL 默认 `可重复读`)。
4. 索引设计与优化:
熟悉索引分类(B-Tree/哈希/全文索引、聚簇/非聚簇索引),能避免索引失效场景(如联合索引不遵循最左前缀、函数操作索引列),用 `EXPLAIN` 分析查询计划。
5. 架构与存储引擎:
区分 InnoDB(支持事务/行级锁,适合高并发)的适用场景,理解 InnoDB 缓冲池的缓存机制。
三、Java 核心技术:后端开发
从 面向对象、集合框架、异常处理到JVM、并发编程,构建了 Java 开发的核心知识体系,能编写高效、安全的后端代码。
1. 面向对象(OOP):
掌握三大特性(封装、继承、多态),理解抽象类与接口的区别(抽象类是“类的抽象”,接口是“行为的抽象”),能正确使用 `extends`(单继承)和 `implements`(多实现)。
2. 集合框架:
理清 `Collection`(List/Set/Queue)和 `Map` 体系,理解不同实现类的适用场景(如 `ArrayList` 查快改慢、`LinkedList` 增删快、`HashMap` 无序高效)。
3. 异常与字符串:
区分受检/非受检异常,掌握 `try-catch-finally` 处理流程和 `throw/throws` 的用法;理解 `String`(不可变)、`StringBuilder`(非线程安全)、`StringBuffer`(线程安全)的差异。
4. JVM 内存与 GC:
掌握 JVM 内存划分(线程私有:程序计数器/虚拟机栈/本地方法栈;线程共享:堆/方法区),理解垃圾回收机制(可达性分析、标记-复制/整理/清除算法)。
5. 并发编程:
理解进程与线程的关系(进程是资源单位,线程是执行单位),掌握线程创建方式(继承 `Thread`、实现 `Runnable/Callable`)、生命周期和核心操作(`start/sleep/join`);熟悉线程池参数(`corePoolSize/maximumPoolSize` 等)和锁机制(`synchronized`、分布式锁)。
四、设计模式与架构思想
学习了常用设计模式和核心架构思想,能编写可扩展、易维护的代码,应对复杂业务场景。
1. 设计模式:
掌握单例(全局唯一实例)、工厂(解耦创建与使用)、建造者(复杂对象分步构建)、适配器(接口兼容)、装饰器(动态增强功能)、代理(控制访问)等模式,理解懒加载思想(延迟初始化,如单例懒汉式)。
2. 架构与缓存:
理解 Session/Cookie 与 JWT 的区别(Session 有状态,JWT 无状态适合分布式);掌握缓存机制(先查缓存再查库、更新库后删缓存),能解决缓存穿透(布隆过滤器)、击穿(互斥锁)、雪崩(分散过期时间)问题。
五、其他关键技术
泛型与反射:理解泛型的通配符(`<? extends T>/<? super T>`)和“编译期存在、运行时失效”特性;掌握反射的三种获取方式(`class/getsClass/forName`),能动态操作类信息。
I/O 流:区分 BIO(阻塞)、NIO(非阻塞多路复用)、AIO(异步),知道不同流模型的适用场景(如 NIO 适合高并发),掌握 `try-catch-finally` 关闭流的规范。

35
zhangbo/第六天股票学习笔记.txt

@ -0,0 +1,35 @@
学习笔记
一、夺宝利剑深度拆解:从信号识别到实战应用
(一)四条核心均线的实战联动逻辑
夺宝利剑的“天线、飞线、中线、流线”并非独立运行,而是通过“长-中-短”趋势的层层嵌套形成信号闭环。具体联动关系如下:
趋势基础:天线与飞线的同向验证
天线作为长期趋势锚点,若始终向上,即使飞线出现短期横盘,也不改变中期向好格局。例如某消费股,天线持续上行,飞线在区间内震荡15个交易日,最终仍随天线方向突破,验证“长期趋势决定中期走向”。
短期机会:中线与流线的启动配合
当中线由平转向上,且流线从下方向上穿越中线时,形成“短期启动预备信号”;若此时流线继续向上靠近飞线,且飞线与天线同向,即构成“三级共振”,上涨概率大幅提升。以某科技股为例,该信号出现后5个交易日内,股价涨幅达12%。
(二)关键信号的差异化解读
强启动信号:四线交汇+流线领涨
当天线、飞线、中线、流线在窄幅区间内交汇(股价波动不超过3%),且流线突破其他三线后持续上行,说明多空力量达成一致,上涨动能集中释放。此类信号出现后,股价往往进入主升浪,需果断跟进。
弱启动信号:三线交汇+流线待突破
若天线、飞线、中线交汇,但流线仍在下方徘徊,仅说明长期、中期趋势一致,但短期尚未具备启动条件。此时需等待流线向上突破,避免提前入场导致站岗。
(三)散户避坑指南
忽略短期波动的前提
只有当天线未拐头向下时,才能忽略短期波动。若天线开始走平或向下,即使飞线、中线短期向上,也可能是反弹行情,不宜长期持有。
规避假信号的方法
当流线向上突破,但飞线与天线方向相反时,大概率为假启动信号。例如某周期股,流线短暂突破中线,但天线已向下,最终股价快速回落,验证“多线不同向,信号需谨慎”。
二、AI探牛进阶应用:从单一股票到跨板块适配
(一)不同板块的指标参数调整
AI探牛的“牵牛绳”与“K线属性”需结合板块特性调整,才能提升信号准确性。
(二)跨周期信号验证
日线与周线的配合
若日线出现“红绳+进攻K线”,但周线仍为绿绳,说明短期上涨但长期趋势未改,需控制仓位;若日线与周线均为红绳,且同步出现进攻K线,即形成“大周期托举小周期”,上涨稳定性更强。以某消费蓝筹股为例,日线与周线同步共振后,股价在1个月内涨幅达15%。
回调信号的量级判断
当“绿绳+撤退K线”出现时,需结合跌幅量级判断:若跌幅≤5%且未跌破周线支撑,多为短期回调;若跌幅≥8%且周线拐头向下,则可能是趋势逆转,需果断止损。
三、两大工具的协同使用策略
1. 趋势判断:AI探牛为主,夺宝利剑为辅
用AI探牛的“牵牛绳”确定整体趋势方向,再通过夺宝利剑的“天线、飞线”验证长期、中期趋势是否一致。若牵牛绳为红,且夺宝利剑四线同向向上,说明趋势稳健,可加大仓位。
2. 买点选择:夺宝利剑为主,AI探牛为辅
当夺宝利剑出现“四线交汇+流线领涨”信号时,查看AI探牛是否同步出现“红绳+进攻K线”,双重验证后入场,可降低假信号风险。例如某股票,夺宝利剑发出启动信号,AI探牛同步为红绳+进攻K线,后续股价涨幅达18%。

4
zhangbo/第四天技术学习笔记.txt

@ -0,0 +1,4 @@
今天主要学习了spring boot相关知识
什么是spring boot,spring的优势,怎么创建spring项目,通过idea直接创建,以及spring的一些核心特性
自动配置,依赖,对spring boot的一些核心注解进行了学习
了解了nacos和seata以及dubbo等。还有aop面向切面编程

63
zhangbo/第四天股票知识学习笔记.txt

@ -0,0 +1,63 @@
夺宝奇兵超级云脑学习总结
10月29日,结合股票基础术语与实操场景,系统学习了夺宝奇兵超级云脑的“云脑探秘”与“机构动向”两大核心模块。本次学习核心目标为掌握AI辅助投资工具的底层逻辑、模块功能及全流程应用方法,现将学习成果按“核心定位-模块解析-实操指南-学习心得”框架总结如下:
一、核心定位:散户专属的智能投资辅助体系
超级云脑以“AI+大数据”为核心驱动力,专为散户破解投资分析门槛高、决策盲目性大等痛点,构建了“价值判断-风险评估-趋势捕捉-资金跟踪-操作决策”的全流程辅助体系。其核心优势在于将复杂的基本面、技术面分析及资金数据,转化为可视化、易理解的直观结论,实现“无需深研术语,即可精准决策”。
1. 双模块核心分工
云脑探秘:智慧决策的“可视化核心窗口”,聚焦股票自身价值与趋势的深度解析,涵盖股票估值、安全级别、压力支撑、趋势研判、庄家成本、情绪价值六大维度,为个股质地判断提供全面依据。
机构动向:资金博弈的“实时跟踪仪表盘”,聚焦市场资金流向与主力行为,通过当日资金、主力资金、主力吸筹、庄散对决四大维度,呈现资金层面的博弈状态,为时机选择提供核心支撑。
2. 底层设计逻辑
全维度数据支撑:整合交易所实时行情、上市公司财报、主力资金流向、市场情绪舆情等多源数据,确保分析依据的全面性与精准性,类似专业机构的量化分析数据基础。
术语通俗转化:将市盈率(PE)、支撑线、筹码集中等专业术语,转化为“值不值买”“安全不安全”“主力在吸筹还是出货”等散户易懂的结论,降低认知门槛。
全流程决策覆盖:从选股(价值判断)、买入(时机捕捉)、持有(趋势跟踪)到卖出(止盈止损),形成闭环辅助,解决散户“碎片化决策”痛点。
二、核心模块深度解析:术语+功能+实操价值
(一)云脑探秘:六大维度解析个股核心价值
1. 股票估值:破解“值不值买”的核心标尺
核心功能:AI基于基本面分析逻辑,自动计算市盈率(PE)、市净率(PB)、每股收益(EPS)等核心指标,对比行业均值与历史数据,直接输出“高估/合理/低估”结论。
术语拆解:PE(股价÷每股盈利)、PB(股价÷每股净资产)是基本面分析的核心指标——PE反映“盈利性价比”,PB反映“资产性价比”。例如垃圾股因题材炒作导致PE远超行业均值,即存在“高估值陷阱”;而盈利稳定的蓝筹股PE处于历史低位,则为“低估性价比标的”。
实操价值:无需散户手动计算财务数据,直接规避“追高泡沫股”风险,精准锁定价值投资标的(如低估行业龙头、绩优成长股)。
2. 安全级别+压力支撑:划定“安全边界”与“买卖点位”
核心功能:安全级别通过“六色罗盘”划分五级风险(极高-较高-中等-较为安全-高安全);压力支撑基于技术面逻辑,计算关键支撑位(下跌止跌点)与压力位(上涨受阻点),并标注强度。
术语拆解:极高风险对应ST股、垃圾股等“非系统风险标的”,高安全对应蓝筹股等“基本面稳定标的”;支撑位即技术面“支撑线”(如前期低点、均线位),压力位即“压力线”(如前期高点、密集成交区),突破压力位需“放量上涨”才更稳。
实操价值:解决“不敢买、不会卖”痛点——高安全+强支撑标的可优先买入;接近强压力位时提示止盈,跌破强支撑位时提示止损。
3. 趋势研判:跳出日内波动,锚定核心方向
核心功能:AI整合K线、移动平均线(MA5/MA10/MA20)、成交量等指标,区分“中长期趋势”(一年以上,道氏理论“基本运动”)与“短期趋势”(数天至数月,“次级/日常运动”),标注“上升/下跌/横盘”及强弱状态。
术语拆解:“均线多头排列”对应中长期上升趋势,“均线空头排列”对应中长期下跌趋势,契合“趋势交易”理念,规避“逆势操作”(如熊市抄底、牛市割肉)。
实操价值:为不同风格散户提供依据——价值投资者看中长期趋势,技术派结合短期趋势捕捉时机。
4. 庄家成本:揭秘主力行为,掌握成本优势
核心功能:通过筹码模型挖掘龙虎榜、资金流向数据,测算庄家长短期“筹码成本”,标注筹码集中程度,判断主力处于吸筹、洗盘、拉升还是出货阶段。
术语拆解:筹码成本即主力吸筹的平均价,“筹码集中”说明主力吸筹充分,后续拉升概率大;“筹码分散”可能是主力出货后状态,风险高。
实操价值:散户可对比自身成本与主力成本——成本低于主力且筹码集中可坚定持有,成本高于主力且接近压力位需止盈。
5. 情绪价值:克服人性弱点,理性决策
核心功能:AI情绪模型捕捉成交量、股价波动、投资者言论等数据,判断“情绪过热(超买)、低迷(超卖)、稳定、拐点”四种状态。
术语拆解:情绪过热伴随“天量”(高点接盘风险),情绪低迷伴随“地量”(割在地板风险),情绪拐点对应“多空转换”信号。
实操价值:规避情绪化操作——过热时减仓,低迷时不盲目割肉,拐点时顺势布局(逆向投资)。
(二)机构动向:四大维度跟踪资金博弈
作为“资金跟踪核心”,实时展示资金流向趋势,聚焦四大维度,为决策提供资金层面支撑,与“云脑探秘”形成互补。
当日资金:展示多空资金流向,对应“买盘强劲”(多头净流入,上涨概率大)或“卖压沉重”(空头净流入,下跌概率大)。
主力资金:反映机构大户买卖态度,是短期股价核心驱动力——持续净流入则短期上涨动能充足。
主力吸筹:对应“建仓”,提示“集中吸筹”时伴随成交量温和放大、股价横盘,预示后续拉升。
庄散对决:展示持仓比例变化——主力持仓占比高且增加,说明主力控盘,股价更稳定;散户占比高则波动加剧。
实操价值:信号组合判断——“估值低估+主力净流入+吸筹”为三重利好;“趋势下跌+主力净流出+散户增仓”为明确风险。
三、全流程实操指南:从选股到卖出的模块组合应用
基础认知:成交量红色柱代表收阳时成交量,绿色柱代表收阴时成交量,是判断趋势、突破有效性的关键辅助。
1. 选股环节:选价值、避风险(三大模块+机构佐证)
1. 第一步:用“股票估值”筛除高估值泡沫股,锁定PE/PB处于合理或低估区间的标的;
2. 第二步:用“安全级别”划定范围,优先选择“较为安全”及以上等级标的,规避ST股等极高风险品种;
3. 第三步:用“庄家成本”判断主力态度,选择筹码集中、散户成本低于主力成本的标的;
4. 第四步:用“机构动向”佐证,优先选择主力资金净流入、有吸筹信号的标的。
2. 买入环节:不追高、买支撑(两大模块组合)
1. 第一步:用“压力支撑”找安全买点,在强支撑位附近布局,避免在压力位下方盲目买入;
2. 第二步:用“情绪价值”避高点,在情绪“稳定”或“低迷企稳”时买入,规避“过热”时追涨。
3. 持有环节:顺趋势、跟主力(两大模块+机构联动)
1. 第一步:用“趋势研判”锚定长期方向,中长期上升趋势可坚定持有,下跌趋势则减少持仓;
2. 第二步:用“机构动向”跟踪短期动能,主力资金持续净流入、持仓占比提升可继续持有,反之则减仓;
3. 第三步:结合“庄家成本”监测筹码状态,筹码分散时警惕主力出货。
4. 卖出环节:不贪多、不扛跌(两大模块+实操示例)
1. 第一步:用“压力支撑”定止盈点——接近强压力位且成交量未放大时止盈;放量突破则持有至下一压力位。
示例:某股票压力位3920.37,当前价3918,压力强度“一般”,若成交量未放大,可在3920附近止盈;若放量突破则持有。
2. 第二步:用“情绪价值”定止损点——情绪从“稳定”转“恐慌”且跌破强支撑位时,立即止损,避免深套。
四、学习心得:工具辅助+理性判断的投资逻辑
超级云脑的核心价值在于“将复杂投资分析简单化、可视化”,通过AI技术解决散户“分析能力不足、信息不对称、人性弱点”三大痛点。但需明确:工具是辅助而非替代,实操中需注意两大原则:
1. 模块组合优于单一依赖:需结合“估值+趋势+资金”多维度判断,如“低估+上升趋势+主力净流入”的标的可靠性更高;
2. 工具结论结合自身风险承受:高安全等级标的适合保守型投资者,趋势强势但风险中等的标的适合激进型投资者。
后续需通过实盘演练深化模块应用,重点熟悉“压力支撑+情绪价值”的买卖点判断,及“机构动向”与个股估值的联动分析,提升投资决策的科学性。

168
吴光慧学习笔记/10.30/study1

@ -1,168 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!--外部CSS
只需修改一个文件即可改变整个网站的外观
-->
<link rel="stylesheet" type="text/css" href="mystyle.css">
<style>
/*内部CSS
在 head 部分的 <style> 元素中进行定义
*/
/*元素选择器*/
p {
text-align: center;
color: red;
border: 2px solid red;
border-radius: 5px;/*圆角边框*/
}
/*id选择器*/
#para1 {
text-align: center;
color: red;
}
/*类选择器*/
.center {
text-align: center;
color: red;
}
/*通配符选择器 * { } */
/*分组选择器*/
h1, h2, p {
text-align: center;
color: red;
}
/*设置背景颜色
有效的颜色名称 - 比如 "red"
十六进制值 - 比如 "#ff0000"
RGB 值 - 比如 "rgb(255,0,0)"
*/
body {
background-color: lightblue;
/*background: rgba(0, 128, 0, 0.3) 30% 不透明度的绿色背景 */
background-image: url("paper.gif");/*背景图像*/
background-repeat: repeat-x;/*背景图像重复方式 repeat-y垂直*/
background-position: right top;/*背景图像位置*/
background-attachment: fixed;/*背景图像是否随内容滚动 scroll*/
/*简写属性顺序:
background-color
background-image
background-repeat
background-attachment
background-position
*/
}
/*盒模型
每个 HTML 元素都可以看作是一个盒子
总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
盒子模型由四个部分组成:
边距(margin):清除元素周围的区域,外边距是透明的
边框(border):围绕内边距和内容的边框
内边距(padding):清除内容周围的区域,内边距也是透明的
内容(content):包含文本和图像的实际内容
*/
div {
width: 300px;
border: 25px solid green;
padding: 25px;
margin: 25px; /*水平居中用 auto*/
}
p.ex {
outline: 5px solid yellow; /*轮廓线,不占空间*/
outline-offset: 25px;/*轮廓线与元素边框的距离*/
}
a {
text-decoration: none;
}
/* unvisited link */
a:link {
color: red;
}
/* visited link */
a:visited {
color: green;
}
/* mouse over link */
a:hover {
color: hotpink;
}
/* selected link */
a:active {
color: blue;
}
</style>
</head>
<body>
<!--
CSS 指的是层叠样式表* (Cascading Style Sheets)
CSS 描述了如何在屏幕、纸张或其他媒体上显示 HTML 元素
CSS 节省了大量工作。它可以同时控制多张网页的布局
外部样式表存储在 CSS 文件中-->
<p>每个段落都会受到样式的影响。</p>
<p id="para1">1111111</p>
<h1 class="center">居中的红色标题</h1>
<p class="center">居中的红色段落。</p>
<!--行内CSS
在相关元素的 "style" 属性中定义
-->
<h1 style="color:blue;text-align:center;">This is a heading</h1>
<!--如果在不同样式表中为同一选择器(元素)定义了一些属性
则将使用最后读取的样式表中的值。
层叠顺序:行内样式(在 HTML 元素中)
外部和内部样式表(在 head 部分)
浏览器默认样式
-->
<!--边框颜色-->
<h1 style="border:2px solid Tomato;">Hello World</h1>
<h1 style="background-color:rgb(255, 99, 71);">...</h1><!--红绿蓝-->
<h1 style="background-color:#ff6347;">...</h1><!--十六进制-->
<h1 style="background-color:hsl(9, 100%, 64%);">...</h1><!--色相、饱和度和明度-->
<p class="ex">5 像素的黄色实线轮廓。</p>
<p>没有下划线的链接:
<a href="https://www.w3school.com.cn">W3School.com.cn</a>
</p>
<h1>CSS 链接</h1>
<p><b><a href="/index.html" target="_blank">这是一个链接</a></b></p>
<!--在 CSS 定义中
a:hover 必须位于 a:link 和 a:visited 之后才能生效。
a:active 必须位于 a:hover 之后才能生效。-->
<!--导航菜单=链接列表-->
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
</body>
</html>

8
吴光慧学习笔记/11.1/hello_vue3/.vscode/settings.json

@ -0,0 +1,8 @@
{
"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"tsconfig.json": "tsconfig.*.json, env.d.ts",
"vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*",
"package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .oxlint*, oxlint*, .prettier*, prettier*, .editorconfig"
}
}

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/baseline-browser-mapping

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
else
exec node "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/baseline-browser-mapping.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\baseline-browser-mapping\dist\cli.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/baseline-browser-mapping.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
} else {
& "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/browserslist

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@"
else
exec node "$basedir/../browserslist/cli.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/browserslist.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/browserslist.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../browserslist/cli.js" $args
} else {
& "node$exe" "$basedir/../browserslist/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/esbuild

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
else
exec node "$basedir/../esbuild/bin/esbuild" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/esbuild.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/esbuild.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-docker

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../is-docker/cli.js" "$@"
else
exec node "$basedir/../is-docker/cli.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-docker.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\is-docker\cli.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-docker.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../is-docker/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../is-docker/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../is-docker/cli.js" $args
} else {
& "node$exe" "$basedir/../is-docker/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-inside-container

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../is-inside-container/cli.js" "$@"
else
exec node "$basedir/../is-inside-container/cli.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-inside-container.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\is-inside-container\cli.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/is-inside-container.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../is-inside-container/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../is-inside-container/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../is-inside-container/cli.js" $args
} else {
& "node$exe" "$basedir/../is-inside-container/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/jsesc

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@"
else
exec node "$basedir/../jsesc/bin/jsesc" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/jsesc.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jsesc\bin\jsesc" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/jsesc.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args
} else {
& "$basedir/node$exe" "$basedir/../jsesc/bin/jsesc" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../jsesc/bin/jsesc" $args
} else {
& "node$exe" "$basedir/../jsesc/bin/jsesc" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/json5

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
else
exec node "$basedir/../json5/lib/cli.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/json5.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/json5.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../json5/lib/cli.js" $args
} else {
& "node$exe" "$basedir/../json5/lib/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/nanoid

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@"
else
exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/nanoid.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/nanoid.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/node-which

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../which/bin/which.js" "$@"
else
exec node "$basedir/../which/bin/which.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/node-which.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\which.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/node-which.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../which/bin/which.js" $args
} else {
& "$basedir/node$exe" "$basedir/../which/bin/which.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../which/bin/which.js" $args
} else {
& "node$exe" "$basedir/../which/bin/which.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" "$@"
else
exec node "$basedir/../npm-run-all2/bin/npm-run-all/index.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\npm-run-all2\bin\npm-run-all\index.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
} else {
& "$basedir/node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
} else {
& "node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all2

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" "$@"
else
exec node "$basedir/../npm-run-all2/bin/npm-run-all/index.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all2.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\npm-run-all2\bin\npm-run-all\index.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/npm-run-all2.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
} else {
& "$basedir/node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
} else {
& "node$exe" "$basedir/../npm-run-all2/bin/npm-run-all/index.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/parser

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
else
exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/parser.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/parser.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/pidtree

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../pidtree/bin/pidtree.js" "$@"
else
exec node "$basedir/../pidtree/bin/pidtree.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/pidtree.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\pidtree\bin\pidtree.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/pidtree.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../pidtree/bin/pidtree.js" $args
} else {
& "$basedir/node$exe" "$basedir/../pidtree/bin/pidtree.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../pidtree/bin/pidtree.js" $args
} else {
& "node$exe" "$basedir/../pidtree/bin/pidtree.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/rollup

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../rollup/dist/bin/rollup" "$@"
else
exec node "$basedir/../rollup/dist/bin/rollup" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/rollup.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/rollup.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
} else {
& "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
} else {
& "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-p

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../npm-run-all2/bin/run-p/index.js" "$@"
else
exec node "$basedir/../npm-run-all2/bin/run-p/index.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-p.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\npm-run-all2\bin\run-p\index.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-p.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../npm-run-all2/bin/run-p/index.js" $args
} else {
& "$basedir/node$exe" "$basedir/../npm-run-all2/bin/run-p/index.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../npm-run-all2/bin/run-p/index.js" $args
} else {
& "node$exe" "$basedir/../npm-run-all2/bin/run-p/index.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-s

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../npm-run-all2/bin/run-s/index.js" "$@"
else
exec node "$basedir/../npm-run-all2/bin/run-s/index.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-s.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\npm-run-all2\bin\run-s\index.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/run-s.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../npm-run-all2/bin/run-s/index.js" $args
} else {
& "$basedir/node$exe" "$basedir/../npm-run-all2/bin/run-s/index.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../npm-run-all2/bin/run-s/index.js" $args
} else {
& "node$exe" "$basedir/../npm-run-all2/bin/run-s/index.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/semver

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
else
exec node "$basedir/../semver/bin/semver.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/semver.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/semver.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsc

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
else
exec node "$basedir/../typescript/bin/tsc" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsc.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsc" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsc.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
} else {
& "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../typescript/bin/tsc" $args
} else {
& "node$exe" "$basedir/../typescript/bin/tsc" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsserver

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
else
exec node "$basedir/../typescript/bin/tsserver" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsserver.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsserver" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/tsserver.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
} else {
& "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../typescript/bin/tsserver" $args
} else {
& "node$exe" "$basedir/../typescript/bin/tsserver" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/update-browserslist-db

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@"
else
exec node "$basedir/../update-browserslist-db/cli.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/update-browserslist-db.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/update-browserslist-db.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
} else {
& "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vite

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
else
exec node "$basedir/../vite/bin/vite.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vite.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vite\bin\vite.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vite.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
} else {
& "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../vite/bin/vite.js" $args
} else {
& "node$exe" "$basedir/../vite/bin/vite.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vue-tsc

@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../vue-tsc/bin/vue-tsc.js" "$@"
else
exec node "$basedir/../vue-tsc/bin/vue-tsc.js" "$@"
fi

17
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vue-tsc.cmd

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vue-tsc\bin\vue-tsc.js" %*

28
吴光慧学习笔记/11.1/hello_vue3/node_modules/.bin/vue-tsc.ps1

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../vue-tsc/bin/vue-tsc.js" $args
} else {
& "$basedir/node$exe" "$basedir/../vue-tsc/bin/vue-tsc.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../vue-tsc/bin/vue-tsc.js" $args
} else {
& "node$exe" "$basedir/../vue-tsc/bin/vue-tsc.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

2161
吴光慧学习笔记/11.1/hello_vue3/node_modules/.package-lock.json
File diff suppressed because it is too large
View File

15
吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/_metadata.json

@ -0,0 +1,15 @@
{
"hash": "46b0222b",
"configHash": "bd95fc18",
"lockfileHash": "fb215960",
"browserHash": "f337cd4d",
"optimized": {
"vue": {
"src": "../../vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "70a0ad66",
"needsInterop": false
}
},
"chunks": {}
}

3
吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/package.json

@ -0,0 +1,3 @@
{
"type": "module"
}

12704
吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/vue.js
File diff suppressed because it is too large
View File

7
吴光慧学习笔记/11.1/hello_vue3/node_modules/.vite/deps/vue.js.map
File diff suppressed because it is too large
View File

137
吴光慧学习笔记/11.1/hello_vue3/node_modules/.vue-global-types/vue_3.5_0.d.ts

@ -0,0 +1,137 @@
// @ts-nocheck
export {};
; declare global {
const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any };
const __VLS_unref: typeof import('vue').unref;
const __VLS_placeholder: any;
type __VLS_NativeElements = __VLS_SpreadMerge<SVGElementTagNameMap, HTMLElementTagNameMap>;
type __VLS_IntrinsicElements = import('vue/jsx-runtime').JSX.IntrinsicElements;
type __VLS_Element = import('vue/jsx-runtime').JSX.Element;
type __VLS_GlobalComponents = import('vue').GlobalComponents;
type __VLS_GlobalDirectives = import('vue').GlobalDirectives;
type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
type __VLS_SpreadMerge<A, B> = Omit<A, keyof B> & B;
type __VLS_WithComponent<N0 extends string, LocalComponents, Self, N1 extends string, N2 extends string, N3 extends string> =
N1 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N1] } :
N2 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N2] } :
N3 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N3] } :
Self extends object ? { [K in N0]: Self } :
N1 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N1] } :
N2 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N2] } :
N3 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N3] } :
{};
type __VLS_FunctionalComponentCtx<T, K> = __VLS_PickNotAny<'__ctx' extends keyof __VLS_PickNotAny<K, {}>
? K extends { __ctx?: infer Ctx } ? NonNullable<Ctx> : never : any
, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any
>;
type __VLS_FunctionalComponentProps<T, K> = '__ctx' extends keyof __VLS_PickNotAny<K, {}>
? K extends { __ctx?: { props?: infer P } } ? NonNullable<P> : never
: T extends (props: infer P, ...args: any) => any ? P
: {};
type __VLS_FunctionalComponent<T> = (props: (T extends { $props: infer Props } ? Props : {}) & Record<string, unknown>, ctx?: any) => __VLS_Element & {
__ctx?: {
attrs?: any;
slots?: T extends { $slots: infer Slots } ? Slots : Record<string, any>;
emit?: T extends { $emit: infer Emit } ? Emit : {};
props?: (T extends { $props: infer Props } ? Props : {}) & Record<string, unknown>;
expose?: (exposed: T) => void;
};
};
type __VLS_IsFunction<T, K> = K extends keyof T
? __VLS_IsAny<T[K]> extends false
? unknown extends T[K]
? false
: true
: false
: false;
type __VLS_NormalizeComponentEvent<
Props,
Emits,
onEvent extends keyof Props,
Event extends keyof Emits,
CamelizedEvent extends keyof Emits,
> = __VLS_IsFunction<Props, onEvent> extends true
? Props
: __VLS_IsFunction<Emits, Event> extends true
? { [K in onEvent]?: Emits[Event] }
: __VLS_IsFunction<Emits, CamelizedEvent> extends true
? { [K in onEvent]?: Emits[CamelizedEvent] }
: Props;
// fix https://github.com/vuejs/language-tools/issues/926
type __VLS_UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never;
type __VLS_OverloadUnionInner<T, U = unknown> = U & T extends (...args: infer A) => infer R
? U extends T
? never
: __VLS_OverloadUnionInner<T, Pick<T, keyof T> & U & ((...args: A) => R)> | ((...args: A) => R)
: never;
type __VLS_OverloadUnion<T> = Exclude<
__VLS_OverloadUnionInner<(() => never) & T>,
T extends () => never ? never : () => never
>;
type __VLS_ConstructorOverloads<T> = __VLS_OverloadUnion<T> extends infer F
? F extends (event: infer E, ...args: infer A) => any
? { [K in E & string]: (...args: A) => void; }
: never
: never;
type __VLS_NormalizeEmits<T> = __VLS_PrettifyGlobal<
__VLS_UnionToIntersection<
__VLS_ConstructorOverloads<T> & {
[K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never
}
>
>;
type __VLS_EmitsToProps<T> = __VLS_PrettifyGlobal<{
[K in string & keyof T as `on${Capitalize<K>}`]?:
(...args: T[K] extends (...args: infer P) => any ? P : T[K] extends null ? any[] : never) => any;
}>;
type __VLS_ResolveEmits<
Comp,
Emits,
TypeEmits = {},
NormalizedEmits = __VLS_NormalizeEmits<Emits> extends infer E ? string extends keyof E ? {} : E : never,
> = __VLS_SpreadMerge<NormalizedEmits, TypeEmits>;
type __VLS_ResolveDirectives<T> = {
[K in keyof T & string as `v${Capitalize<K>}`]: T[K];
};
type __VLS_PrettifyGlobal<T> = { [K in keyof T as K]: T[K]; } & {};
type __VLS_WithDefaultsGlobal<P, D> = {
[K in keyof P as K extends keyof D ? K : never]-?: P[K];
} & {
[K in keyof P as K extends keyof D ? never : K]: P[K];
};
type __VLS_UseTemplateRef<T> = Readonly<import('vue').ShallowRef<T | null>>;
type __VLS_ProxyRefs<T> = import('vue').ShallowUnwrapRef<T>;
function __VLS_getVForSourceType<T extends number | string | any[] | Iterable<any>>(source: T): [
item: T extends number ? number
: T extends string ? string
: T extends any[] ? T[number]
: T extends Iterable<infer T1> ? T1
: any,
index: number,
][];
function __VLS_getVForSourceType<T>(source: T): [
item: T[keyof T],
key: keyof T,
index: number,
][];
function __VLS_getSlotParameters<S, D extends S>(slot: S, decl?: D):
D extends (...args: infer P) => any ? P : any[];
function __VLS_asFunctionalDirective<T>(dir: T): T extends import('vue').ObjectDirective
? NonNullable<T['created' | 'beforeMount' | 'mounted' | 'beforeUpdate' | 'updated' | 'beforeUnmount' | 'unmounted']>
: T extends (...args: any) => any
? T
: (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void;
function __VLS_asFunctionalComponent<T, K = T extends new (...args: any) => any ? InstanceType<T> : unknown>(t: T, instance?: K):
T extends new (...args: any) => any ? __VLS_FunctionalComponent<K>
: T extends () => any ? (props: {}, ctx?: any) => ReturnType<T>
: T extends (...args: any) => any ? T
: __VLS_FunctionalComponent<{}>;
function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : [];
function __VLS_asFunctionalElement<T>(tag: T, endTag?: T): (attrs: T & Record<string, unknown>) => void;
function __VLS_asFunctionalSlot<S>(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable<S>;
function __VLS_tryAsConstant<const T>(t: T): T;
}

137
吴光慧学习笔记/11.1/hello_vue3/node_modules/.vue-global-types/vue_99_0.d.ts

@ -0,0 +1,137 @@
// @ts-nocheck
export {};
; declare global {
const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any };
const __VLS_unref: typeof import('vue').unref;
const __VLS_placeholder: any;
type __VLS_NativeElements = __VLS_SpreadMerge<SVGElementTagNameMap, HTMLElementTagNameMap>;
type __VLS_IntrinsicElements = import('vue/jsx-runtime').JSX.IntrinsicElements;
type __VLS_Element = import('vue/jsx-runtime').JSX.Element;
type __VLS_GlobalComponents = import('vue').GlobalComponents;
type __VLS_GlobalDirectives = import('vue').GlobalDirectives;
type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
type __VLS_SpreadMerge<A, B> = Omit<A, keyof B> & B;
type __VLS_WithComponent<N0 extends string, LocalComponents, Self, N1 extends string, N2 extends string, N3 extends string> =
N1 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N1] } :
N2 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N2] } :
N3 extends keyof LocalComponents ? { [K in N0]: LocalComponents[N3] } :
Self extends object ? { [K in N0]: Self } :
N1 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N1] } :
N2 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N2] } :
N3 extends keyof __VLS_GlobalComponents ? { [K in N0]: __VLS_GlobalComponents[N3] } :
{};
type __VLS_FunctionalComponentCtx<T, K> = __VLS_PickNotAny<'__ctx' extends keyof __VLS_PickNotAny<K, {}>
? K extends { __ctx?: infer Ctx } ? NonNullable<Ctx> : never : any
, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any
>;
type __VLS_FunctionalComponentProps<T, K> = '__ctx' extends keyof __VLS_PickNotAny<K, {}>
? K extends { __ctx?: { props?: infer P } } ? NonNullable<P> : never
: T extends (props: infer P, ...args: any) => any ? P
: {};
type __VLS_FunctionalComponent<T> = (props: (T extends { $props: infer Props } ? Props : {}) & Record<string, unknown>, ctx?: any) => __VLS_Element & {
__ctx?: {
attrs?: any;
slots?: T extends { $slots: infer Slots } ? Slots : Record<string, any>;
emit?: T extends { $emit: infer Emit } ? Emit : {};
props?: (T extends { $props: infer Props } ? Props : {}) & Record<string, unknown>;
expose?: (exposed: T) => void;
};
};
type __VLS_IsFunction<T, K> = K extends keyof T
? __VLS_IsAny<T[K]> extends false
? unknown extends T[K]
? false
: true
: false
: false;
type __VLS_NormalizeComponentEvent<
Props,
Emits,
onEvent extends keyof Props,
Event extends keyof Emits,
CamelizedEvent extends keyof Emits,
> = __VLS_IsFunction<Props, onEvent> extends true
? Props
: __VLS_IsFunction<Emits, Event> extends true
? { [K in onEvent]?: Emits[Event] }
: __VLS_IsFunction<Emits, CamelizedEvent> extends true
? { [K in onEvent]?: Emits[CamelizedEvent] }
: Props;
// fix https://github.com/vuejs/language-tools/issues/926
type __VLS_UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never;
type __VLS_OverloadUnionInner<T, U = unknown> = U & T extends (...args: infer A) => infer R
? U extends T
? never
: __VLS_OverloadUnionInner<T, Pick<T, keyof T> & U & ((...args: A) => R)> | ((...args: A) => R)
: never;
type __VLS_OverloadUnion<T> = Exclude<
__VLS_OverloadUnionInner<(() => never) & T>,
T extends () => never ? never : () => never
>;
type __VLS_ConstructorOverloads<T> = __VLS_OverloadUnion<T> extends infer F
? F extends (event: infer E, ...args: infer A) => any
? { [K in E & string]: (...args: A) => void; }
: never
: never;
type __VLS_NormalizeEmits<T> = __VLS_PrettifyGlobal<
__VLS_UnionToIntersection<
__VLS_ConstructorOverloads<T> & {
[K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never
}
>
>;
type __VLS_EmitsToProps<T> = __VLS_PrettifyGlobal<{
[K in string & keyof T as `on${Capitalize<K>}`]?:
(...args: T[K] extends (...args: infer P) => any ? P : T[K] extends null ? any[] : never) => any;
}>;
type __VLS_ResolveEmits<
Comp,
Emits,
TypeEmits = Comp extends { __typeEmits?: infer T } ? unknown extends T ? {} : import('vue').ShortEmitsToObject<T> : {},
NormalizedEmits = __VLS_NormalizeEmits<Emits> extends infer E ? string extends keyof E ? {} : E : never,
> = __VLS_SpreadMerge<NormalizedEmits, TypeEmits>;
type __VLS_ResolveDirectives<T> = {
[K in keyof T & string as `v${Capitalize<K>}`]: T[K];
};
type __VLS_PrettifyGlobal<T> = { [K in keyof T as K]: T[K]; } & {};
type __VLS_WithDefaultsGlobal<P, D> = {
[K in keyof P as K extends keyof D ? K : never]-?: P[K];
} & {
[K in keyof P as K extends keyof D ? never : K]: P[K];
};
type __VLS_UseTemplateRef<T> = Readonly<import('vue').ShallowRef<T | null>>;
type __VLS_ProxyRefs<T> = import('vue').ShallowUnwrapRef<T>;
function __VLS_getVForSourceType<T extends number | string | any[] | Iterable<any>>(source: T): [
item: T extends number ? number
: T extends string ? string
: T extends any[] ? T[number]
: T extends Iterable<infer T1> ? T1
: any,
index: number,
][];
function __VLS_getVForSourceType<T>(source: T): [
item: T[keyof T],
key: keyof T,
index: number,
][];
function __VLS_getSlotParameters<S, D extends S>(slot: S, decl?: D):
D extends (...args: infer P) => any ? P : any[];
function __VLS_asFunctionalDirective<T>(dir: T): T extends import('vue').ObjectDirective
? NonNullable<T['created' | 'beforeMount' | 'mounted' | 'beforeUpdate' | 'updated' | 'beforeUnmount' | 'unmounted']>
: T extends (...args: any) => any
? T
: (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void;
function __VLS_asFunctionalComponent<T, K = T extends new (...args: any) => any ? InstanceType<T> : unknown>(t: T, instance?: K):
T extends new (...args: any) => any ? __VLS_FunctionalComponent<K>
: T extends () => any ? (props: {}, ctx?: any) => ReturnType<T>
: T extends (...args: any) => any ? T
: __VLS_FunctionalComponent<{}>;
function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : [];
function __VLS_asFunctionalElement<T>(tag: T, endTag?: T): (attrs: T & Record<string, unknown>) => void;
function __VLS_asFunctionalSlot<S>(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable<S>;
function __VLS_tryAsConstant<const T>(t: T): T;
}

22
吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/LICENSE

@ -0,0 +1,22 @@
MIT License
Copyright (c) 2014-present Sebastian McKenzie and other contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

19
吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/README.md

@ -0,0 +1,19 @@
# @babel/code-frame
> Generate errors that contain a code frame that point to source locations.
See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information.
## Install
Using npm:
```sh
npm install --save-dev @babel/code-frame
```
or using yarn:
```sh
yarn add @babel/code-frame --dev
```

216
吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/lib/index.js

@ -0,0 +1,216 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var picocolors = require('picocolors');
var jsTokens = require('js-tokens');
var helperValidatorIdentifier = require('@babel/helper-validator-identifier');
function isColorSupported() {
return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported
);
}
const compose = (f, g) => v => f(g(v));
function buildDefs(colors) {
return {
keyword: colors.cyan,
capitalized: colors.yellow,
jsxIdentifier: colors.yellow,
punctuator: colors.yellow,
number: colors.magenta,
string: colors.green,
regex: colors.magenta,
comment: colors.gray,
invalid: compose(compose(colors.white, colors.bgRed), colors.bold),
gutter: colors.gray,
marker: compose(colors.red, colors.bold),
message: compose(colors.red, colors.bold),
reset: colors.reset
};
}
const defsOn = buildDefs(picocolors.createColors(true));
const defsOff = buildDefs(picocolors.createColors(false));
function getDefs(enabled) {
return enabled ? defsOn : defsOff;
}
const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
const BRACKET = /^[()[\]{}]$/;
let tokenize;
{
const JSX_TAG = /^[a-z][\w-]*$/i;
const getTokenType = function (token, offset, text) {
if (token.type === "name") {
if (helperValidatorIdentifier.isKeyword(token.value) || helperValidatorIdentifier.isStrictReservedWord(token.value, true) || sometimesKeywords.has(token.value)) {
return "keyword";
}
if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
return "jsxIdentifier";
}
if (token.value[0] !== token.value[0].toLowerCase()) {
return "capitalized";
}
}
if (token.type === "punctuator" && BRACKET.test(token.value)) {
return "bracket";
}
if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
return "punctuator";
}
return token.type;
};
tokenize = function* (text) {
let match;
while (match = jsTokens.default.exec(text)) {
const token = jsTokens.matchToToken(match);
yield {
type: getTokenType(token, match.index, text),
value: token.value
};
}
};
}
function highlight(text) {
if (text === "") return "";
const defs = getDefs(true);
let highlighted = "";
for (const {
type,
value
} of tokenize(text)) {
if (type in defs) {
highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n");
} else {
highlighted += value;
}
}
return highlighted;
}
let deprecationWarningShown = false;
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
function getMarkerLines(loc, source, opts) {
const startLoc = Object.assign({
column: 0,
line: -1
}, loc.start);
const endLoc = Object.assign({}, startLoc, loc.end);
const {
linesAbove = 2,
linesBelow = 3
} = opts || {};
const startLine = startLoc.line;
const startColumn = startLoc.column;
const endLine = endLoc.line;
const endColumn = endLoc.column;
let start = Math.max(startLine - (linesAbove + 1), 0);
let end = Math.min(source.length, endLine + linesBelow);
if (startLine === -1) {
start = 0;
}
if (endLine === -1) {
end = source.length;
}
const lineDiff = endLine - startLine;
const markerLines = {};
if (lineDiff) {
for (let i = 0; i <= lineDiff; i++) {
const lineNumber = i + startLine;
if (!startColumn) {
markerLines[lineNumber] = true;
} else if (i === 0) {
const sourceLength = source[lineNumber - 1].length;
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
} else if (i === lineDiff) {
markerLines[lineNumber] = [0, endColumn];
} else {
const sourceLength = source[lineNumber - i].length;
markerLines[lineNumber] = [0, sourceLength];
}
}
} else {
if (startColumn === endColumn) {
if (startColumn) {
markerLines[startLine] = [startColumn, 0];
} else {
markerLines[startLine] = true;
}
} else {
markerLines[startLine] = [startColumn, endColumn - startColumn];
}
}
return {
start,
end,
markerLines
};
}
function codeFrameColumns(rawLines, loc, opts = {}) {
const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
const defs = getDefs(shouldHighlight);
const lines = rawLines.split(NEWLINE);
const {
start,
end,
markerLines
} = getMarkerLines(loc, lines, opts);
const hasColumns = loc.start && typeof loc.start.column === "number";
const numberMaxWidth = String(end).length;
const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
const number = start + 1 + index;
const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
const gutter = ` ${paddedNumber} |`;
const hasMarker = markerLines[number];
const lastMarkerLine = !markerLines[number + 1];
if (hasMarker) {
let markerLine = "";
if (Array.isArray(hasMarker)) {
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
const numberOfMarkers = hasMarker[1] || 1;
markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join("");
if (lastMarkerLine && opts.message) {
markerLine += " " + defs.message(opts.message);
}
}
return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
} else {
return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`;
}
}).join("\n");
if (opts.message && !hasColumns) {
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
}
if (shouldHighlight) {
return defs.reset(frame);
} else {
return frame;
}
}
function index (rawLines, lineNumber, colNumber, opts = {}) {
if (!deprecationWarningShown) {
deprecationWarningShown = true;
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
if (process.emitWarning) {
process.emitWarning(message, "DeprecationWarning");
} else {
const deprecationError = new Error(message);
deprecationError.name = "DeprecationWarning";
console.warn(new Error(message));
}
}
colNumber = Math.max(colNumber, 0);
const location = {
start: {
column: colNumber,
line: lineNumber
}
};
return codeFrameColumns(rawLines, location, opts);
}
exports.codeFrameColumns = codeFrameColumns;
exports.default = index;
exports.highlight = highlight;
//# sourceMappingURL=index.js.map

1
吴光慧学习笔记/11.1/hello_vue3/node_modules/@babel/code-frame/lib/index.js.map
File diff suppressed because it is too large
View File

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save