@bams-app/work-cli 0.0.5 → 0.0.6
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 +16 -22
- package/bin/work-cli.js +9 -5
- package/commands/add.js +2 -1
- package/commands/create.js +1 -2
- package/package.json +2 -2
- package/templates/project/.envs/.env.dev-demo +0 -10
- package/templates/project/README.md +98 -28
- package/templates/project/package.json +17 -3
- package/templates/project/.envs/README.md +0 -52
- package/templates/project/.npmrc.tpl +0 -1
package/README.md
CHANGED
|
@@ -21,8 +21,9 @@ BAMS-Work 全局开发工具(类似 vue-cli 模式),提供**项目初始
|
|
|
21
21
|
- `workspaces` 与仓库根 `package.json` 保持一致:`bams-components/*`、`apex-web/*` 等 glob 用于兼容
|
|
22
22
|
用户克隆进项目的既有组件包仓库(目录不存在时不影响安装,`create` 也不会默认创建它们)。
|
|
23
23
|
- 项目根 `package.json` 只声明 `@bams-app/ui-dev-server` 与能力包,**不声明任何外部运行时依赖**;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
发布后模式下能力包的传递依赖(vue、ant-design-vue 等)由 npm 自动安装。`create` **不生成**
|
|
25
|
+
项目 `.npmrc`;仅本地验证模式(`file:` 引用 work 本地包)需手动在项目根创建 `.npmrc` 并写入
|
|
26
|
+
`install-links=true`,否则 npm 只对 `file:` 包建符号链接、不安装其传递依赖。
|
|
26
27
|
- 能力包(`work/packages`、`work/ui`、`work/configs` 下的全部运行时包,含 ui 组件)声明
|
|
27
28
|
**以 ui-dev-server 的 dependencies 为单一来源**:本地验证模式逐个 `file:` 注入 work 本地
|
|
28
29
|
目录,发布后模式由 ui-dev-server 的 dependencies 随 npm 自动安装,业务组件与 runtime
|
|
@@ -41,11 +42,11 @@ flowchart LR
|
|
|
41
42
|
C["@bams-app/*"]
|
|
42
43
|
end
|
|
43
44
|
subgraph CLI["@bams-app/work-cli(薄壳)"]
|
|
44
|
-
D["create / add / dev
|
|
45
|
+
D["create / add / dev<br/>env / pages-entry / pages-from-components"]
|
|
45
46
|
end
|
|
46
47
|
subgraph PROJ["用户项目(Monorepo)"]
|
|
47
48
|
E["package.json<br/>仅声明 @bams-app/*"]
|
|
48
|
-
F["npm install<br
|
|
49
|
+
F["npm install<br/>能力包及传递依赖自动安装"]
|
|
49
50
|
end
|
|
50
51
|
A -->|"publish-all / 单包 npm publish"| C
|
|
51
52
|
B -->|"发布 + 依赖声明"| C
|
|
@@ -86,12 +87,6 @@ npm install
|
|
|
86
87
|
bams-work dev demo # 默认组件 ui-component-demo
|
|
87
88
|
bams-work dev demo ui-order-list # 指定组件
|
|
88
89
|
|
|
89
|
-
# 构建宿主应用(production,输出 dist/)
|
|
90
|
-
bams-work build ui-order-list
|
|
91
|
-
|
|
92
|
-
# 构建组件 UMD 产物(输出 dist/umd/)
|
|
93
|
-
bams-work umd ui-order-list
|
|
94
|
-
|
|
95
90
|
# 在 scope 目录下创建新组件
|
|
96
91
|
bams-work add --dir energy-ui --name ui-order-list
|
|
97
92
|
bams-work add --dir energy-ui --name page-order-list --type page
|
|
@@ -108,13 +103,13 @@ bams-work update
|
|
|
108
103
|
| `create <name>` | 初始化 Monorepo 项目模版(含示例组件与 `.bams-work/` 标记) |
|
|
109
104
|
| `add --dir <scope> --name <name>` | 在 scope 目录下创建组件(component/page/base),并注册 workspace |
|
|
110
105
|
| `dev <env> [component]` | 启动 work 开发环境(复用 ui-dev-server serve) |
|
|
111
|
-
| `
|
|
112
|
-
| `umd [component]` | 构建组件 UMD 产物(复用 build-umd) |
|
|
113
|
-
| `env [--force]` | 交互式创建开发环境配置 `.envs/.env.dev-<alias>`(复用 create-env) |
|
|
106
|
+
| `env` | 交互式创建开发环境配置 `.envs/.env.dev-<alias>`(复用 create-env) |
|
|
114
107
|
| `update [--skip-install]` | 升级 `@bams-app` 包:查询最新版本、更新 ui-dev-server 声明并重装依赖 |
|
|
115
108
|
| `pages-entry --dir <dir> --type <page\|component>` | 扫描 page-*/ui-* 目录生成 webpack 动态入口(复用 create-pages-entry) |
|
|
116
109
|
| `pages-from-components --dir <dir>` | 批量将 ui-* 组件转为 page-* 页面(复用 create-pages-from-components) |
|
|
117
110
|
|
|
111
|
+
> `build`、`umd` 命令暂时下线(入口与示例均已移除),暂不可用。
|
|
112
|
+
|
|
118
113
|
### 组件目录规范
|
|
119
114
|
|
|
120
115
|
业务组件(`<scope>/ui-xxx`)包含:`index.js`、`package.json`(`@<scope>/ui-xxx`)、
|
|
@@ -187,9 +182,10 @@ bams-work update
|
|
|
187
182
|
|
|
188
183
|
### 本地验证模式(file:)
|
|
189
184
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
185
|
+
需先在项目根创建 `.npmrc` 并写入 `install-links=true`(`create` 不再生成),使能力包以复制
|
|
186
|
+
方式安装并解析其全部传递依赖。npm 对已安装的 file: 依赖会直接跳过(即使源码已变化),
|
|
187
|
+
`bams-work update` 会先清除 node_modules 中全部 file: 依赖缓存再重装,强制重新复制 work
|
|
188
|
+
本地最新源码:
|
|
193
189
|
|
|
194
190
|
```bash
|
|
195
191
|
bams-work update
|
|
@@ -209,16 +205,16 @@ bams-work update
|
|
|
209
205
|
### 前提
|
|
210
206
|
|
|
211
207
|
- 升级前确保对应版本已发布:`"*"` 只解析 registry 上已发布的版本。
|
|
212
|
-
- registry 指向:`create`
|
|
213
|
-
|
|
208
|
+
- registry 指向:`create` 不生成项目 `.npmrc`,`@bams-app/*` 默认走官方 npm
|
|
209
|
+
(registry.npmjs.org);仅在内网隔离、必须走私服时,才在项目 `.npmrc` 手动加
|
|
214
210
|
`@bams-app:registry=https://npm.hedpy.cn/`(私服若存在同名旧版本,会遮蔽官方新版)。
|
|
215
211
|
|
|
216
212
|
## 本地验证(未发布时)
|
|
217
213
|
|
|
218
214
|
未发布时通过 `file:` 引用本地 work 包完成端到端验证(`create` 会自动探测 work 仓库根,
|
|
219
215
|
将 ui-dev-server 与能力包以 `file:` 注入项目依赖,无需手动设置环境变量)。
|
|
220
|
-
|
|
221
|
-
|
|
216
|
+
注意:本地验证模式需自行在项目根创建 `.npmrc` 并写入 `install-links=true`,使 `file:` 包以
|
|
217
|
+
复制方式安装并解析其全部传递依赖;修改 work 包源码后需重新执行 `npm install` 才会生效:
|
|
222
218
|
|
|
223
219
|
```bash
|
|
224
220
|
cd work-cli && npm install # 安装 file: 依赖(链接 work/cli 下的包)
|
|
@@ -228,8 +224,6 @@ cd /tmp && rm -rf demo-app
|
|
|
228
224
|
bams-work create demo-app # 自动以 file: 引用本地 ui-dev-server 与能力包
|
|
229
225
|
cd demo-app && npm install
|
|
230
226
|
bams-work dev demo # 应返回 HTTP 200
|
|
231
|
-
bams-work build ui-component-demo
|
|
232
|
-
bams-work umd ui-component-demo
|
|
233
227
|
bams-work add --dir energy-ui --name ui-order-list
|
|
234
228
|
```
|
|
235
229
|
|
package/bin/work-cli.js
CHANGED
|
@@ -10,14 +10,15 @@ const COMMANDS = {
|
|
|
10
10
|
create: '初始化 Monorepo 项目模版',
|
|
11
11
|
add: '在 scope 目录下创建组件(component/page/base)',
|
|
12
12
|
dev: '启动 work 开发环境(serve,复用 ui-dev-server)',
|
|
13
|
-
build: '构建宿主应用(production,复用 ui-dev-server)',
|
|
14
|
-
umd: '构建组件 UMD 产物(复用 build-umd)',
|
|
15
13
|
env: '创建开发环境配置(.envs/.env.dev-<alias>)',
|
|
16
14
|
update: '升级 @bams-app 包(更新 ui-dev-server 并重装依赖)',
|
|
17
15
|
'pages-entry': '扫描 page-*/ui-* 目录生成 webpack 动态入口',
|
|
18
16
|
'pages-from-components': '批量将 ui-* 组件转为 page-* 页面'
|
|
19
17
|
};
|
|
20
18
|
|
|
19
|
+
// 暂时下线的命令:commands/ 下的实现文件保留,恢复时删除此处对应项即可
|
|
20
|
+
const DISABLED_COMMANDS = ['build', 'umd'];
|
|
21
|
+
|
|
21
22
|
function printUsage() {
|
|
22
23
|
console.log('');
|
|
23
24
|
console.log(colorize('BAMS-Work CLI', 'cyan'), colorize(`v${pkg.version}`, 'gray'));
|
|
@@ -35,9 +36,7 @@ function printUsage() {
|
|
|
35
36
|
console.log(' bams-work create my-bams-project # 初始化 Monorepo 项目');
|
|
36
37
|
console.log(' bams-work add --dir energy-ui --name ui-order-list');
|
|
37
38
|
console.log(' bams-work dev demo ui-component-demo # 启动 work 开发环境');
|
|
38
|
-
console.log(' bams-work
|
|
39
|
-
console.log(' bams-work umd ui-component-demo --out dist # 构建 UMD 产物');
|
|
40
|
-
console.log(' bams-work env demo # 创建开发环境配置');
|
|
39
|
+
console.log(' bams-work env # 创建开发环境配置(交互式)');
|
|
41
40
|
console.log(' bams-work update # 升级 @bams-app 包');
|
|
42
41
|
console.log(' bams-work pages-entry --dir energy-ui --type page');
|
|
43
42
|
console.log(' bams-work pages-from-components --dir energy-ui');
|
|
@@ -57,6 +56,11 @@ async function main() {
|
|
|
57
56
|
process.exit(0);
|
|
58
57
|
}
|
|
59
58
|
|
|
59
|
+
if (DISABLED_COMMANDS.includes(command)) {
|
|
60
|
+
console.error(colorize(`命令已暂时下线: ${command}`, 'red'));
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
|
|
60
64
|
const commandPath = path.resolve(__dirname, '../commands', `${command}.js`);
|
|
61
65
|
if (!fs.existsSync(commandPath)) {
|
|
62
66
|
console.error(colorize(`未知命令: ${command}`, 'red'));
|
package/commands/add.js
CHANGED
|
@@ -132,7 +132,8 @@ async function main(args) {
|
|
|
132
132
|
|
|
133
133
|
success(`组件创建成功: ${toKebabCase(params.name)}(scope: ${scopeDir})`);
|
|
134
134
|
info(`开发: bams-work dev <env> ${toKebabCase(params.name)}`);
|
|
135
|
-
|
|
135
|
+
// UMD 命令暂时下线,恢复后取消注释
|
|
136
|
+
// info(`UMD: bams-work umd ${toKebabCase(params.name)}`);
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
module.exports = main;
|
package/commands/create.js
CHANGED
|
@@ -141,8 +141,7 @@ async function main(args) {
|
|
|
141
141
|
copyDir(PROJECT_TEMPLATE_DIR, targetDir);
|
|
142
142
|
|
|
143
143
|
const tplRenames = [
|
|
144
|
-
['gitignore.tpl', '.gitignore']
|
|
145
|
-
['.npmrc.tpl', '.npmrc']
|
|
144
|
+
['gitignore.tpl', '.gitignore']
|
|
146
145
|
];
|
|
147
146
|
for (const [from, to] of tplRenames) {
|
|
148
147
|
const tplPath = path.join(targetDir, from);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bams-app/work-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "BAMS-Work 全局开发工具:复用 work 已发布的包(ui-dev-server / shared-env / create-ui-*)提供项目初始化与组件开发能力(类似 vue-cli)",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -26,4 +26,4 @@
|
|
|
26
26
|
"node": ">=16.7.0"
|
|
27
27
|
},
|
|
28
28
|
"license": "UNLICENSED"
|
|
29
|
-
}
|
|
29
|
+
}
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
# 开发环境(示例),可复制为 .env.dev-<标识> 使用
|
|
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 的端口保持一致,首次使用请按实际后端地址修改。
|
|
7
1
|
NODE_ENV=development
|
|
8
2
|
PORT=8700
|
|
9
3
|
PROXY_TARGET=http://192.168.7.11:8700
|
|
@@ -12,7 +6,3 @@ BASE_URL=/
|
|
|
12
6
|
VUE_APP_TITLE=BAMS组件开发环境
|
|
13
7
|
VUE_APP_SYS_CODE=bams-demo
|
|
14
8
|
VUE_APP_SYS_NAME=BAMS组件开发示例
|
|
15
|
-
|
|
16
|
-
# 可配置插槽(可选,留空使用默认空组件)
|
|
17
|
-
# COMPONENT_LOGIN=@bams-app/ui-login-component
|
|
18
|
-
# COMPONENT_STARTR_LAYOUT=@bams-app/ui-startr-layout-component
|
|
@@ -16,57 +16,127 @@
|
|
|
16
16
|
└── ui-xxx
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## 快速开始
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
#
|
|
23
|
-
bams-work dev demo
|
|
24
|
-
|
|
22
|
+
npm install # 安装依赖到根 node_modules
|
|
23
|
+
bams-work dev demo # 启动开发环境(示例环境端口 8700)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> 所有 `bams-work` 命令都在**项目根目录**执行(即含 `.bams-work/` 的目录)。
|
|
27
|
+
> 全局帮助 `bams-work --help`,查看版本 `bams-work --version`。
|
|
28
|
+
|
|
29
|
+
## 命令一览
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
| 命令 | 作用 |
|
|
32
|
+
| ---------------------------------------------------- | --------------------------- |
|
|
33
|
+
| `dev <env> [component]` | 启动开发服务(最常用) |
|
|
34
|
+
| `add --dir <scope> --name <name>` | 新建组件 / 页面 / 基础组件 |
|
|
35
|
+
| `env` | 交互式创建开发环境配置 |
|
|
36
|
+
| `update` | 升级 `@bams-app` 依赖 |
|
|
37
|
+
| `pages-entry --dir <scope> --type <page\|component>` | 生成 webpack 动态入口 |
|
|
38
|
+
| `pages-from-components --dir <scope>` | 批量将 `ui-*` 转为 `page-*` |
|
|
28
39
|
|
|
29
|
-
|
|
30
|
-
bams-work umd ui-order-list
|
|
40
|
+
### 1. `bams-work dev` — 启动开发环境
|
|
31
41
|
|
|
32
|
-
|
|
33
|
-
bams-work
|
|
34
|
-
bams-work
|
|
42
|
+
```bash
|
|
43
|
+
bams-work dev demo # 加载 .envs/.env.dev-demo,默认组件 ui-component-demo
|
|
44
|
+
bams-work dev demo ui-order-list # 指定要调试的组件
|
|
45
|
+
bams-work dev demo ui-order-list --layout touch # 切换布局(默认 pc)
|
|
46
|
+
bams-work dev demo ui-order-list -- --port 8080 # `--` 之后的参数透传给 vue-cli-service
|
|
35
47
|
```
|
|
36
48
|
|
|
37
|
-
|
|
49
|
+
| 参数 | 必填 | 说明 |
|
|
50
|
+
| ------------------- | ---- | -------------------------------------------------------------------------------------- |
|
|
51
|
+
| `<env>` | 是 | 环境标识,对应 `.envs/.env.dev-<env>`;文件不存在会直接报错,先用 `bams-work env` 创建 |
|
|
52
|
+
| `[component]` | 否 | 组件目录名(如 `ui-order-list`),省略时默认 `ui-component-demo` |
|
|
53
|
+
| `--layout`、`-l` | 否 | 布局:`pc`(默认)/ `touch` |
|
|
54
|
+
| `--component`、`-c` | 否 | 等价于位置参数 `[component]` |
|
|
55
|
+
| `--` 之后的参数 | 否 | 原样透传给底层 `vue-cli-service`(如 `--port`、`--open`) |
|
|
56
|
+
|
|
57
|
+
启动地址与接口代理取自环境文件:`PORT` 决定本地端口,`PROXY_TARGET` 决定后端代理目标。
|
|
58
|
+
|
|
59
|
+
### 2. `bams-work add` — 新建组件
|
|
38
60
|
|
|
39
61
|
```bash
|
|
40
|
-
|
|
41
|
-
#
|
|
42
|
-
|
|
62
|
+
bams-work add --dir energy-ui --name ui-order-list # 业务组件(默认 type=component)
|
|
63
|
+
bams-work add --dir energy-ui --name page-order-list --type page # 页面
|
|
64
|
+
bams-work add --dir demo-ui --name ui-base-btn --type base # 基础组件
|
|
43
65
|
```
|
|
44
66
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
`
|
|
48
|
-
|
|
67
|
+
| 参数 | 必填 | 说明 |
|
|
68
|
+
| -------- | ---- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
69
|
+
| `--dir` | 是 | scope 目录名(小写字母、数字、连字符,如 `energy-ui`);不存在会自动创建,并自动注册到根 `package.json` 的 `workspaces` |
|
|
70
|
+
| `--name` | 是 | 组件名,自动转为 kebab-case;`component`/`base` 建议 `ui-` 前缀,`page` 建议 `page-` 前缀 |
|
|
71
|
+
| `--type` | 否 | `component`(默认)/ `page` / `base` |
|
|
72
|
+
| `--desc` | 否 | 组件描述 |
|
|
49
73
|
|
|
50
|
-
|
|
74
|
+
创建完成后会提示用哪条 `dev` 命令调试。
|
|
51
75
|
|
|
52
|
-
###
|
|
76
|
+
### 3. `bams-work env` — 创建开发环境
|
|
77
|
+
|
|
78
|
+
交互式向导,无需记参数,生成 `.envs/.env.dev-<标识>`:
|
|
53
79
|
|
|
54
80
|
```bash
|
|
55
|
-
|
|
81
|
+
bams-work env
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
流程:列出已有环境与已占用端口 → 选择创建方式 → 输入环境标识 → 逐项填写配置 → 预览确认后写入。
|
|
85
|
+
|
|
86
|
+
创建方式二选一:
|
|
87
|
+
|
|
88
|
+
- **快速复制**:基于现有环境文件,或 `production` 空值模板,只改差异项(推荐)
|
|
89
|
+
- **自定义配置**:从默认模板逐项填写
|
|
90
|
+
|
|
91
|
+
环境标识即 `dev` 的第一个参数:`bams-work env` 创建了 `test`,就用 `bams-work dev test` 启动。
|
|
92
|
+
|
|
93
|
+
常用字段(可直接编辑对应环境文件,`dev` 每次启动都会重新加载):
|
|
94
|
+
|
|
95
|
+
| 字段 | 说明 |
|
|
96
|
+
| ------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
|
|
97
|
+
| `NODE_ENV` | 运行环境,固定 `development` |
|
|
98
|
+
| `PORT` | 开发服务器端口(创建时自动避开其他环境已占用的端口) |
|
|
99
|
+
| `PROXY_TARGET` | 接口代理目标(后端服务地址) |
|
|
100
|
+
| `BASE_URL` | 应用基础路径,默认 `/` |
|
|
101
|
+
| `COMPONENT_LOGIN`、`COMPONENT_STARTR_LAYOUT` | 可配置组件插槽:登录页 / 布局组件包名 |
|
|
102
|
+
| `VUE_APP_TITLE`、`VUE_APP_SYS_NAME`、`VUE_APP_SYS_CODE` | 浏览器标签标题、系统名称、系统编码 |
|
|
103
|
+
| `VUE_APP_SHOW_HEADER`、`VUE_APP_ENABLE_THEME`、`VUE_APP_THEME_MODE`、`VUE_APP_THEME_PRESET` | 头部显示与主题(模式 / 预设色) |
|
|
104
|
+
| `VUE_APP_ENABLE_I18N`、`VUE_APP_ENABLE_VERSION_LOG`、`VUE_APP_TABS_EXPAND_STATE` | 国际化、版本日志、Tabs 展开/收起 |
|
|
105
|
+
| `VUE_APP_ENABLE_CAPTCHA`、`VUE_APP_ENABLE_MESSAGE_VOICE`、`VUE_APP_MESSAGE_WS_URL` | 登录验证码、消息告警通知及其 WS 地址 |
|
|
106
|
+
| `VUE_APP_LOGIN_URL`、`VUE_APP_LOGIN_PUBLIC_KEY`、`VUE_APP_WEBSOCKET_URL` | 登录页地址、登录公钥、WebSocket 地址 |
|
|
107
|
+
| `VUE_APP_DEVEXTREME_LICENSE_KEY` | DevExtreme 许可证密钥(可留空) |
|
|
108
|
+
|
|
109
|
+
### 4. `bams-work update` — 升级依赖
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
bams-work update # 升级并重装依赖
|
|
56
113
|
```
|
|
57
114
|
|
|
58
|
-
###
|
|
115
|
+
### 5. 其他命令
|
|
116
|
+
|
|
117
|
+
- `bams-work pages-entry --dir <scope> --type page|component`:扫描该 scope 下的 `page-*` / `ui-*` 目录,生成 webpack 动态入口 `build-components-entry.js`(构建流程内部使用,一般无需手动执行)
|
|
118
|
+
- `bams-work pages-from-components --dir <scope>`:把该 scope 下的 `ui-*` 组件批量复制为 `page-*` 页面
|
|
59
119
|
|
|
60
|
-
|
|
120
|
+
## 首次安装
|
|
61
121
|
|
|
62
122
|
```bash
|
|
63
|
-
|
|
64
|
-
|
|
123
|
+
npm install
|
|
124
|
+
# 或
|
|
125
|
+
yarn install
|
|
65
126
|
```
|
|
66
127
|
|
|
67
|
-
|
|
128
|
+
`@bams-app/ui-dev-server` 及其依赖的能力包(`@bams-app/components` 等)会安装到根 node_modules,
|
|
129
|
+
业务组件与 work 开发环境共用同一套能力实例;能力包的传递依赖(vue、ant-design-vue 等)由 npm
|
|
130
|
+
自动安装,因此 `package.json` 无需声明任何外部运行时依赖。
|
|
131
|
+
|
|
132
|
+
## 升级 CLI
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npm i -g @bams-app/work-cli@latest
|
|
136
|
+
```
|
|
68
137
|
|
|
69
|
-
|
|
138
|
+
项目运行时依赖只有 `@bams-app/ui-dev-server`,其余能力包(`@bams-app/components` 等)由它传递安装,
|
|
139
|
+
升级项目依赖用 `bams-work update`(见上文)。
|
|
70
140
|
|
|
71
141
|
## 自定义配置
|
|
72
142
|
|
|
@@ -12,11 +12,25 @@
|
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
14
|
"dev": "bams-work dev",
|
|
15
|
-
"build": "bams-work build",
|
|
16
|
-
"umd": "bams-work umd",
|
|
17
15
|
"add": "bams-work add"
|
|
18
16
|
},
|
|
19
17
|
"dependencies": {
|
|
20
|
-
__UI_DEV_SERVER_DEP____CAPABILITY_DEPS__
|
|
18
|
+
__UI_DEV_SERVER_DEP____CAPABILITY_DEPS__,
|
|
19
|
+
"@ant-design/icons-vue": "^7.0.1",
|
|
20
|
+
"ant-design-vue": "4.2.6",
|
|
21
|
+
"axios": "^1.13.2",
|
|
22
|
+
"core-js": "^3.8.3",
|
|
23
|
+
"dayjs": "^1.11.20",
|
|
24
|
+
"devextreme": "25.2.3",
|
|
25
|
+
"devextreme-exceljs-fork": "^4.4.8",
|
|
26
|
+
"devextreme-vue": "25.2.3",
|
|
27
|
+
"file-saver": "^2.0.5",
|
|
28
|
+
"flex.css": "^1.1.7",
|
|
29
|
+
"jsencrypt": "^3.5.4",
|
|
30
|
+
"marked": "^17.0.4",
|
|
31
|
+
"pinia": "^3.0.4",
|
|
32
|
+
"pinia-plugin-persistedstate": "^4.7.1",
|
|
33
|
+
"vue": "^3.5.24",
|
|
34
|
+
"vue-router": "4"
|
|
21
35
|
}
|
|
22
36
|
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# 项目环境配置
|
|
2
|
-
|
|
3
|
-
本目录存放各业务系统环境变量,`bams-work dev <env>` 会加载 `.env.dev-<env>`。
|
|
4
|
-
|
|
5
|
-
## 环境文件格式
|
|
6
|
-
|
|
7
|
-
- `.env.dev-demo`:开发环境示例(跟随本模板生成)
|
|
8
|
-
- `.env.production`:生产环境(构建时加载)
|
|
9
|
-
|
|
10
|
-
## 关键变量
|
|
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_*` | 注入前端代码的编译变量(勿存放敏感信息) |
|
|
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`。
|
|
29
|
-
|
|
30
|
-
## 创建新环境
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
# 复制示例
|
|
34
|
-
cd .envs
|
|
35
|
-
cp .env.dev-demo .env.dev-<新标识>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
> 命名规范:`.env.dev-<标识>`,标识仅允许小写字母、数字和连字符。
|
|
39
|
-
|
|
40
|
-
## 代理配置
|
|
41
|
-
|
|
42
|
-
默认内置代理前缀:`/bams-assets`、`/bams-ui-umd`、`/bams-app`、`/admin-api`、`/preview`。
|
|
43
|
-
|
|
44
|
-
如需自定义代理,在项目根创建 `.proxy.js`:
|
|
45
|
-
|
|
46
|
-
```js
|
|
47
|
-
module.exports = {
|
|
48
|
-
proxy: {
|
|
49
|
-
'/my-api': { target: 'http://192.168.1.100:8080', changeOrigin: true }
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
install-links=true
|