@bams-app/work-cli 0.0.1 → 0.0.3

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 CHANGED
@@ -165,12 +165,12 @@ cd work/configs && npm publish --registry=https://registry.npmjs.org/
165
165
  统一声明,发布后随 `npm install` 自动安装到用户项目,无需逐包注入。
166
166
 
167
167
  发布后 work-cli 的 `dependencies` 应从 `file:../work/cli/...` 改为对应 registry 版本号
168
- (`^0.1.0` 等),`create` 生成的项目则声明 `"@bams-app/ui-dev-server": "^0.1.0"`。
168
+ (`^0.0.1` 等),`create` 生成的项目则声明 `"@bams-app/ui-dev-server": "^0.0.1"`。
169
169
 
170
170
  ## 用户项目升级
171
171
 
172
172
  用户项目依赖 `@bams-app/*` 的方式决定升级方式:本地验证模式为 `file:` 引用 work 本地包,
173
- 发布后模式仅直接依赖 `@bams-app/ui-dev-server`(`^0.1.0`),能力包由 ui-dev-server 的
173
+ 发布后模式仅直接依赖 `@bams-app/ui-dev-server`(`^0.0.1`),能力包由 ui-dev-server 的
174
174
  dependencies(`"*"`)传递安装。
175
175
 
176
176
  ### 一键升级(推荐)
package/bin/work-cli.js CHANGED
@@ -65,7 +65,10 @@ async function main() {
65
65
  }
66
66
 
67
67
  const handler = require(commandPath);
68
- await handler(args);
68
+ const code = await handler(args);
69
+ if (typeof code === 'number' && code !== 0) {
70
+ process.exit(code);
71
+ }
69
72
  }
70
73
 
71
74
  main().catch((err) => {
package/commands/add.js CHANGED
@@ -101,11 +101,13 @@ async function main(args) {
101
101
  process.exit(1);
102
102
  }
103
103
 
104
+ // 先校验组件类型并解析 create-ui-* 入口,校验不通过时不应留下任何副作用
105
+ const createBin = resolveCreateBin(type);
106
+
104
107
  // 将 scope 目录注册到项目 workspaces
105
108
  ensureWorkspaceScope(projectRoot, scopeDir);
106
109
 
107
110
  // 委托对应 create-ui-* 包(复用 work 的模板与命令)
108
- const createBin = resolveCreateBin(type);
109
111
 
110
112
  const binArgs = [
111
113
  '--dir', path.resolve(projectRoot, scopeDir),
@@ -43,7 +43,7 @@ function buildUiDevServerDep() {
43
43
  return `"@bams-app/ui-dev-server": "file:${pkgDir}"`;
44
44
  }
45
45
  }
46
- return `"@bams-app/ui-dev-server": "^0.1.0"`;
46
+ return `"@bams-app/ui-dev-server": "^0.0.1"`;
47
47
  }
48
48
 
49
49
  /**
@@ -140,9 +140,15 @@ async function main(args) {
140
140
  // 1. 拷贝项目模板
141
141
  copyDir(PROJECT_TEMPLATE_DIR, targetDir);
142
142
 
143
- const gitignoreTpl = path.join(targetDir, 'gitignore.tpl');
144
- if (fs.existsSync(gitignoreTpl)) {
145
- fs.renameSync(gitignoreTpl, path.join(targetDir, '.gitignore'));
143
+ const tplRenames = [
144
+ ['gitignore.tpl', '.gitignore'],
145
+ ['.npmrc.tpl', '.npmrc']
146
+ ];
147
+ for (const [from, to] of tplRenames) {
148
+ const tplPath = path.join(targetDir, from);
149
+ if (fs.existsSync(tplPath)) {
150
+ fs.renameSync(tplPath, path.join(targetDir, to));
151
+ }
146
152
  }
147
153
 
148
154
  // 2. 生成 .bams-work 标记目录(findProjectRoot 定位项目根)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bams-app/work-cli",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "BAMS-Work 全局开发工具:复用 work 已发布的包(ui-dev-server / shared-env / create-ui-*)提供项目初始化与组件开发能力(类似 vue-cli)",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -1,8 +1,12 @@
1
1
  # 开发环境(示例),可复制为 .env.dev-<标识> 使用
2
- # 端口必须与 PROXY_TARGET 的端口保持一致
2
+ #
3
+ # ⚠ PROXY_TARGET 必须填写真实的后端服务地址,禁止填写 127.0.0.1 / localhost。
4
+ # 当 PROXY_TARGET 指向本机(即 dev server 自身端口)时会形成代理自环,
5
+ # /bams-assets、/admin-api 等前缀的请求会返回 431,Vue 等全局库加载失败导致页面白屏。
6
+ # 端口约定:PORT 与 PROXY_TARGET 的端口保持一致,首次使用请按实际后端地址修改。
3
7
  NODE_ENV=development
4
- PORT=8088
5
- PROXY_TARGET=http://127.0.0.1:8088
8
+ PORT=8700
9
+ PROXY_TARGET=http://192.168.7.11:8700
6
10
  BASE_URL=/
7
11
 
8
12
  VUE_APP_TITLE=BAMS组件开发环境
@@ -9,16 +9,23 @@
9
9
 
10
10
  ## 关键变量
11
11
 
12
- | 变量名 | 说明 |
13
- | ------------------------- | ---------------------------------------- |
14
- | `PROXY_TARGET` | 开发代理目标地址(后端服务) |
15
- | `PORT` | 开发服务器端口,需与代理目标端口一致 |
16
- | `BASE_URL` | 应用基础路径 |
17
- | `VUE_APP_TITLE` | 浏览器标签页标题 |
18
- | `VUE_APP_SYS_CODE` | 系统编码 |
19
- | `COMPONENT_LOGIN` | 登录组件包名(可配置插槽) |
20
- | `COMPONENT_STARTR_LAYOUT` | 布局组件包名(可配置插槽) |
21
- | `VUE_APP_*` | 注入前端代码的编译变量(勿存放敏感信息) |
12
+ | 变量名 | 说明 |
13
+ | ------------------------- | ---------------------------------------------------- |
14
+ | `PROXY_TARGET` | 开发代理目标地址(真实后端服务主机,禁止写本机地址) |
15
+ | `PORT` | 开发服务器端口,需与代理目标端口一致 |
16
+ | `BASE_URL` | 应用基础路径 |
17
+ | `VUE_APP_TITLE` | 浏览器标签页标题 |
18
+ | `VUE_APP_SYS_CODE` | 系统编码 |
19
+ | `COMPONENT_LOGIN` | 登录组件包名(可配置插槽) |
20
+ | `COMPONENT_STARTR_LAYOUT` | 布局组件包名(可配置插槽) |
21
+ | `VUE_APP_*` | 注入前端代码的编译变量(勿存放敏感信息) |
22
+
23
+ > ⚠️ **`PROXY_TARGET` 不要填写 `127.0.0.1` / `localhost`**
24
+ >
25
+ > 当 `PROXY_TARGET` 与开发服务器自身同地址同端口时,代理会指向自己形成自环,
26
+ > `/bams-assets`、`/bams-ui-umd`、`/bams-app`、`/admin-api`、`/preview` 等前缀的请求将返回
27
+ > **431 Request Header Fields Too Large**,Vue / Vue Router / Pinia 等全局库无法加载,
28
+ > 表现为**页面白屏且控制台无报错**。请填写真实后端主机,例如 `http://192.168.7.11:8700`。
22
29
 
23
30
  ## 创建新环境
24
31
 
@@ -0,0 +1,2 @@
1
+ @bams-app:registry=https://npm.hedpy.cn/
2
+ install-links=true