slw 1.0.0-rc.7.13 → 1.0.0-rc.7.14

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,88 @@
1
+ # slw
2
+
3
+ SLW 组件库(由 slw-all monorepo 的 `packages/*` 合并而成的单一 npm 包)。
4
+
5
+ ## 目录结构
6
+
7
+ 原 pnpm workspace 下的各子包已平铺为本包内的同级目录,彼此通过相对路径互相引用,
8
+ 原先的 `@slw/xxx` 引用不再存在,因此不再依赖 pnpm workspace 协议。
9
+
10
+ | 原包名 | 本包内目录 |
11
+ | --- | --- |
12
+ | `@slw/slw` | 包根目录(`index.js` / `style.scss` / `vite.config.js`) |
13
+ | `@slw/utils` | `utils/` |
14
+ | `@slw/custom-drawer` | `custom-drawer/` |
15
+ | `@slw/custom-modal` | `custom-modal/` |
16
+ | `@slw/file-upload` | `file-upload/` |
17
+ | `@slw/iframe-f-report-view` | `iframe-f-report-view/` |
18
+ | `@slw/picture-upload` | `picture-upload/` |
19
+ | `@slw/preview-modal` | `preview-modal/` |
20
+ | `@slw/window-charts` | `window-component/` |
21
+ | `@slw/window-designer` | `window-designer/` |
22
+ | `@slw/window-form` | `window-form/` |
23
+ | `@slw/window-grid` | `window-grid/` |
24
+ | `@slw/window-index` | `window-index/` |
25
+ | `@slw/window-layout` | `window-layout/` |
26
+ | `scss` | `scss/` |
27
+
28
+ 组件功能代码与 slw-all 保持一致,仅调整了包内引用路径。
29
+
30
+ ## 使用 npm 构建
31
+
32
+ ```bash
33
+ npm install
34
+ npm run build # 产物输出到 ./lib(index.js / index.umd.cjs / style.css)
35
+ ```
36
+
37
+ 发布层级与原先 `slw-all/slw-lib` 完全一致:`lib/` + `package.json`(+ `README.md`),
38
+ 由 `package.json` 的 `files` 字段控制:`["./lib", "package.json", "README.md"]`。
39
+
40
+ `lib/` 内容:
41
+
42
+ | 文件 | 说明 |
43
+ | --- | --- |
44
+ | `index.js` | ES 入口(约 100B,仅 re-export) |
45
+ | `index-<hash>.js` | ES 分包产物 |
46
+ | `index.umd.cjs` | UMD 产物 |
47
+ | `style.css` | 全量样式 |
48
+
49
+ ### 消费方注意:`reactivityTransform`
50
+
51
+ 若消费方在 `@vitejs/plugin-vue` 里开了 `reactivityTransform: true`,其内部过滤规则为
52
+ `createFilter(/\.(j|t)sx?$/, /node_modules/)`,会把本包(以 `file:` 软链引入时,解析后的真实
53
+ 路径不在 `node_modules` 下)的 `.js` **产物**当成源码再做一次响应式语法糖转换;产物中第三方
54
+ 压缩代码里的 `$()` 调用会被误判为 `$` 宏,从而报:
55
+
56
+ ```
57
+ [vite] Internal server error: $ can only be used as the initializer of a variable declaration.
58
+ ```
59
+
60
+ 本包保持与 `slw-lib` 一致的 `.js` 结构,因此**不**通过改扩展名规避,而是在消费方关闭该选项。
61
+ 以 `web-new` 为例:
62
+
63
+ ```js
64
+ vue({
65
+ // 关闭响应式语法糖转换;slw 的产物不再被当作源码二次转换。
66
+ reactivityTransform: false,
67
+ }),
68
+ ```
69
+
70
+ 若消费方自身确实用到了 `$ref` 等宏,则不能简单关闭,可改为传入正则把作用范围收窄到本应用
71
+ 源码(`.vue` 的宏不受该过滤影响,仅 `.js`/`.ts` 受影响):
72
+
73
+ ```js
74
+ vue({
75
+ reactivityTransform: /[\\/]web-new[\\/](src|pub)[\\/].*\.[jt]sx?$/,
76
+ }),
77
+ ```
78
+
79
+ > 说明:若本机 `esbuild` 的 postinstall 校验报 `spawnSync ... EBUSY`(部分 Windows 环境会出现),
80
+ > 改用 `npm install --ignore-scripts` 即可,`esbuild` 的平台二进制由 `@esbuild/win32-x64` 直接提供,
81
+ > 不影响后续 `npm run build`。
82
+
83
+ ## 发布
84
+
85
+ ```bash
86
+ npm run pub:aliyun # 阿里云私有源
87
+ npm run pub:npm # npm 官方源
88
+ ```