@nasti-toolchain/nasti 1.3.9 → 1.4.0
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 +83 -2
- package/dist/cli.cjs +486 -24
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +484 -24
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +1752 -1288
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +82 -1
- package/dist/index.d.ts +82 -1
- package/dist/index.js +1738 -1281
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
- **Vite 插件兼容** - 直接使用现有 Vite/Rollup 插件(resolveId / load / transform)
|
|
24
24
|
- **内置 React 支持** - JSX 自动转换 + React Fast Refresh HMR
|
|
25
25
|
- **内置 Vue 支持** - SFC 编译 + Vue HMR(可选依赖 `@vue/compiler-sfc`)
|
|
26
|
+
- **Electron 41+ 支持** - 一键构建主进程 / Preload / 渲染进程,支持 ESM 主进程
|
|
26
27
|
- **Dev Server + HMR** - 开发服务器 + WebSocket 热模块替换
|
|
27
28
|
- **TypeScript 优先** - 原生 TS 支持,零配置
|
|
28
29
|
|
|
@@ -92,11 +93,17 @@ export default defineConfig({
|
|
|
92
93
|
# 开发服务器
|
|
93
94
|
nasti dev [root] [--port 3000] [--host] [--open]
|
|
94
95
|
|
|
95
|
-
#
|
|
96
|
-
nasti build [root] [--outDir dist] [--sourcemap] [--minify]
|
|
96
|
+
# 生产构建(Web / Electron)
|
|
97
|
+
nasti build [root] [--outDir dist] [--sourcemap] [--minify] [--target web|electron]
|
|
97
98
|
|
|
98
99
|
# 预览构建产物
|
|
99
100
|
nasti preview [root] [--port 4173]
|
|
101
|
+
|
|
102
|
+
# Electron 开发模式(需预装 electron ^41)
|
|
103
|
+
nasti electron [root] [--port 3000] [--no-spawn] [--no-restart]
|
|
104
|
+
|
|
105
|
+
# Electron 生产构建(等价于 nasti build --target electron)
|
|
106
|
+
nasti electron-build [root] [--outDir dist]
|
|
100
107
|
```
|
|
101
108
|
|
|
102
109
|
## Programmatic API
|
|
@@ -162,6 +169,80 @@ export default defineConfig({
|
|
|
162
169
|
})
|
|
163
170
|
```
|
|
164
171
|
|
|
172
|
+
## Electron 支持
|
|
173
|
+
|
|
174
|
+
Nasti 原生支持 Electron,**最低 Electron 41**(对应 Node 22 / Chromium 138,完整 ESM 主进程)。
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# 安装 Electron(按需选择版本,支持 41、42、43+)
|
|
178
|
+
npm install -D electron@^41
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
// nasti.config.ts
|
|
183
|
+
import { defineConfig } from 'nasti-build'
|
|
184
|
+
|
|
185
|
+
export default defineConfig({
|
|
186
|
+
target: 'electron',
|
|
187
|
+
electron: {
|
|
188
|
+
main: 'src/electron/main.ts', // 主进程入口
|
|
189
|
+
preload: 'src/electron/preload.ts', // Preload 脚本(可传数组)
|
|
190
|
+
mainFormat: 'cjs', // 主进程输出格式:'cjs' | 'esm'
|
|
191
|
+
preloadFormat: 'cjs', // Preload 输出格式
|
|
192
|
+
nodeTarget: 'node22', // Electron 41 捆绑 Node 22
|
|
193
|
+
autoRestart: true, // 主/preload 变更后自动重启
|
|
194
|
+
minVersion: 41, // 最低 Electron 版本
|
|
195
|
+
},
|
|
196
|
+
})
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
开发:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# 同时启动渲染进程 dev server + Electron,主/preload 变更自动重启
|
|
203
|
+
nasti electron
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
生产构建(产物结构):
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
dist/
|
|
210
|
+
├── renderer/ # Web 渲染层
|
|
211
|
+
├── main.cjs # 主进程(可配置为 .mjs)
|
|
212
|
+
└── preload.cjs # Preload 脚本
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
主进程示例:
|
|
216
|
+
|
|
217
|
+
```ts
|
|
218
|
+
// src/electron/main.ts
|
|
219
|
+
import { app, BrowserWindow } from 'electron'
|
|
220
|
+
import path from 'node:path'
|
|
221
|
+
|
|
222
|
+
async function createWindow() {
|
|
223
|
+
const win = new BrowserWindow({
|
|
224
|
+
width: 1200,
|
|
225
|
+
height: 800,
|
|
226
|
+
webPreferences: {
|
|
227
|
+
preload: path.resolve(__dirname, 'preload.cjs'),
|
|
228
|
+
contextIsolation: true,
|
|
229
|
+
sandbox: true,
|
|
230
|
+
},
|
|
231
|
+
})
|
|
232
|
+
|
|
233
|
+
// 开发模式下 Nasti 会通过环境变量传入 dev server URL
|
|
234
|
+
if (process.env.NASTI_DEV_SERVER_URL) {
|
|
235
|
+
await win.loadURL(process.env.NASTI_DEV_SERVER_URL)
|
|
236
|
+
} else {
|
|
237
|
+
await win.loadFile(path.resolve(__dirname, 'renderer/index.html'))
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
app.whenReady().then(createWindow)
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
> 详细说明见 [Electron 指南](https://nasti.zixiaolabs.com/pages/electron.html)。
|
|
245
|
+
|
|
165
246
|
## License
|
|
166
247
|
|
|
167
248
|
[MIT](./LICENSE) - Made by [zixiao-labs](https://github.com/zixiao-labs)
|