yo-moss-ai 0.0.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.
package/README.md ADDED
@@ -0,0 +1,153 @@
1
+ # yo-moss-ai
2
+
3
+ MOSS 配置客户端:连接云通道、学习红外遥控器、配置 Onvif 摄像头。
4
+
5
+ 客户电脑安装好 Node.js 后,一条命令即可启动,并自动打开浏览器。
6
+
7
+ ```bash
8
+ npx yo-moss-ai
9
+ ```
10
+
11
+ 指定版本(推荐,避免意外升到不兼容的版本):
12
+
13
+ ```bash
14
+ npx yo-moss-ai@0.1.0
15
+ ```
16
+
17
+ 首次运行会下载依赖(含摄像头预览用的 ffmpeg),可能需要一两分钟。之后再运行会快很多。
18
+
19
+ 启动成功后终端会打印类似:
20
+
21
+ ```text
22
+ yo-moss-ai v0.1.0 http://127.0.0.1:3780
23
+ ```
24
+
25
+ 浏览器一般会自动打开。若没有,请手动访问上面的地址。用 `Ctrl + C` 结束。
26
+
27
+ ## 如何卸掉
28
+
29
+ `npx yo-moss-ai` **不会**装成系统里的常驻软件。终端里 `Ctrl + C` 停掉后,命令本身就已经没在运行。
30
+
31
+ 若要清掉本机残留:
32
+
33
+ 1. **配置和账号**(云通道、摄像头密码等)在用户目录:
34
+
35
+ ```bash
36
+ # macOS / Linux
37
+ rm -rf ~/.moss-desktop
38
+
39
+ # Windows(PowerShell)
40
+ Remove-Item -Recurse -Force "$env:USERPROFILE\.moss-desktop"
41
+ ```
42
+
43
+ 2. **npx 下载缓存**(含 ffmpeg 等依赖,可腾出磁盘):
44
+
45
+ ```bash
46
+ npm cache clean --force
47
+ ```
48
+
49
+ 若曾经用过全局安装 `npm install -g yo-moss-ai`,再执行:
50
+
51
+ ```bash
52
+ npm uninstall -g yo-moss-ai
53
+ ```
54
+
55
+ ## 需要的 Node.js 版本
56
+
57
+ **必须安装 Node.js 20 或更高版本**(建议安装官网的 LTS 长期支持版,例如 20 或 22)。
58
+
59
+ 在终端检查:
60
+
61
+ ```bash
62
+ node -v
63
+ ```
64
+
65
+ 应显示 `v20.x.x` 或更高。若提示 `command not found`,或版本低于 20,请先按下面步骤安装。
66
+
67
+ ## 如何安装 Node.js
68
+
69
+ ### 方法一:官网安装包(最简单)
70
+
71
+ 1. 打开 [https://nodejs.org/zh-cn](https://nodejs.org/zh-cn)
72
+ 2. 下载 **LTS** 版本(不要下 Current 测试版也行,但 LTS 更稳)
73
+ 3. 运行安装程序,一路下一步,保持默认选项(Windows 请勾选 “Add to PATH”)
74
+ 4. **关掉旧的终端窗口,重新打开一个新的**
75
+ 5. 再执行 `node -v` 和 `npm -v`,确认都能显示版本号
76
+
77
+ ### 方法二:macOS 用 Homebrew
78
+
79
+ ```bash
80
+ brew install node@22
81
+ ```
82
+
83
+ 若 `node -v` 仍看不到,把 Homebrew 的 node 加入 PATH 后再开一个新终端。
84
+
85
+ ### 方法三:用 nvm 管理版本(适合需要多版本的人)
86
+
87
+ **macOS / Linux:**
88
+
89
+ ```bash
90
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
91
+ ```
92
+
93
+ 关掉终端再打开,然后:
94
+
95
+ ```bash
96
+ nvm install 22
97
+ nvm use 22
98
+ node -v
99
+ ```
100
+
101
+ **Windows:** 可使用 [nvm-windows](https://github.com/coreybutler/nvm-windows/releases),安装后同样执行 `nvm install 22`。
102
+
103
+ ### 装好后启动本工具
104
+
105
+ ```bash
106
+ npx yo-moss-ai
107
+ ```
108
+
109
+ `npx` 随 Node.js 一起安装,不用再装别的。若提示是否安装包,输入 `y` 回车。
110
+
111
+ ## 使用顺序
112
+
113
+ 1. 连接云通道
114
+ 2. 找到 MOSS(自动扫描或手填 IP)
115
+ 3. 需要时把云通道信息写入设备
116
+ 4. 添加电器并学习遥控器。学到信号后请先试发,确认电器有反应再保存
117
+ 5. 可选:扫描 Onvif 摄像头,查看画面并控制云台
118
+
119
+ 电脑、MOSS、摄像头需要在同一局域网。
120
+
121
+ ## 开发者
122
+
123
+ 本地开发:
124
+
125
+ ```bash
126
+ pnpm install
127
+ pnpm dev
128
+ ```
129
+
130
+ 浏览器打开 http://localhost:5173 ,接口在 `3780` 端口。
131
+
132
+ 打包(压缩并混淆前端与服务端代码):
133
+
134
+ ```bash
135
+ pnpm build
136
+ ```
137
+
138
+ 发布到 npm(每次自动升版本号,默认 +0.0.1):
139
+
140
+ ```bash
141
+ npm login
142
+ npm whoami # 能打印出用户名再发布
143
+ pnpm release # 0.1.0 -> 0.1.1
144
+ pnpm release:minor # 0.1.1 -> 0.2.0
145
+ pnpm release:major # 0.2.0 -> 1.0.0
146
+ pnpm release 1.4.0 # 指定版本
147
+ ```
148
+
149
+ 若构建已成功、只是登录失败,不要再 `pnpm release`(会重复升版本),登录后执行:
150
+
151
+ ```bash
152
+ npm publish --access public
153
+ ```
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs'
3
+ import path from 'node:path'
4
+ import { fileURLToPath, pathToFileURL } from 'node:url'
5
+
6
+ const major = Number(process.versions.node.split('.')[0])
7
+ if (major < 20) {
8
+ console.error(`yo-moss-ai 需要 Node.js 20 或更高版本,当前是 ${process.version}`)
9
+ console.error('请到 https://nodejs.org/zh-cn 下载并安装 LTS 版本后再运行:npx yo-moss-ai')
10
+ process.exit(1)
11
+ }
12
+
13
+ const root = path.join(path.dirname(fileURLToPath(import.meta.url)), '..')
14
+ const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8'))
15
+ const server = path.join(root, 'dist-server', 'index.mjs')
16
+
17
+ if (!fs.existsSync(server)) {
18
+ console.error('缺少构建产物,请先在项目里执行 pnpm build')
19
+ process.exit(1)
20
+ }
21
+
22
+ process.env.NODE_ENV = 'production'
23
+ process.env.MOSS_OPEN_BROWSER = process.env.MOSS_OPEN_BROWSER || '1'
24
+ process.env.MOSS_VERSION = pkg.version
25
+
26
+ await import(pathToFileURL(server).href)