@nasti-toolchain/nasti 1.4.1 → 1.5.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 +52 -0
- package/dist/cli.cjs +300 -88
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +293 -81
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +502 -79
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -1
- package/dist/index.d.ts +22 -1
- package/dist/index.js +500 -78
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
- **内置 React 支持** - JSX 自动转换 + React Fast Refresh HMR
|
|
25
25
|
- **内置 Vue 支持** - SFC 编译 + Vue HMR(可选依赖 `@vue/compiler-sfc`)
|
|
26
26
|
- **Electron 41+ 支持** - 一键构建主进程 / Preload / 渲染进程,支持 ESM 主进程
|
|
27
|
+
- **Monaco Editor 集成** - 内置 `monacoEditorPlugin`,预打包 Web Worker,修复 HMR 期间的 EMFILE
|
|
27
28
|
- **Dev Server + HMR** - 开发服务器 + WebSocket 热模块替换
|
|
28
29
|
- **TypeScript 优先** - 原生 TS 支持,零配置
|
|
29
30
|
|
|
@@ -243,6 +244,57 @@ app.whenReady().then(createWindow)
|
|
|
243
244
|
|
|
244
245
|
> 详细说明见 [Electron 指南](https://nasti.zixiaolabs.com/pages/electron.html)。
|
|
245
246
|
|
|
247
|
+
## Monaco Editor 支持
|
|
248
|
+
|
|
249
|
+
内置 `monacoEditorPlugin`(对标 `vite-plugin-monaco-editor`),解决两个老大难问题:
|
|
250
|
+
|
|
251
|
+
1. Monaco 的 Web Worker 是独立入口,必须单独打包
|
|
252
|
+
2. `monaco-editor` 包含 2000+ 源文件,按 ESM 逐文件服务会在 HMR 时触发 **EMFILE(too many open files)** — 本插件将 Worker 预打包到磁盘缓存,并把 `monaco-editor` 目录显式从 watcher 中剔除
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
npm install monaco-editor
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
```ts
|
|
259
|
+
// nasti.config.ts
|
|
260
|
+
import { defineConfig, monacoEditorPlugin } from '@nasti-toolchain/nasti'
|
|
261
|
+
|
|
262
|
+
export default defineConfig({
|
|
263
|
+
plugins: [
|
|
264
|
+
monacoEditorPlugin({
|
|
265
|
+
// 默认全部启用:editorWorkerService / css / html / json / typescript
|
|
266
|
+
languageWorkers: ['editorWorkerService', 'json', 'typescript'],
|
|
267
|
+
|
|
268
|
+
// 自定义 Worker(如 monaco-graphql)
|
|
269
|
+
customWorkers: [
|
|
270
|
+
{ label: 'graphql', entry: 'monaco-graphql/esm/graphql.worker' },
|
|
271
|
+
],
|
|
272
|
+
|
|
273
|
+
// Worker URL 前缀,可指向 CDN 绝对 URL
|
|
274
|
+
publicPath: 'monacoeditorwork',
|
|
275
|
+
|
|
276
|
+
// 兼容旧 API:将 monaco 暴露到 window.monaco
|
|
277
|
+
globalAPI: false,
|
|
278
|
+
}),
|
|
279
|
+
],
|
|
280
|
+
})
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
应用代码无需任何胶水:
|
|
284
|
+
|
|
285
|
+
```ts
|
|
286
|
+
import * as monaco from 'monaco-editor'
|
|
287
|
+
|
|
288
|
+
monaco.editor.create(document.getElementById('editor')!, {
|
|
289
|
+
value: 'function hi() { console.log("hello monaco") }',
|
|
290
|
+
language: 'typescript',
|
|
291
|
+
theme: 'vs-dark',
|
|
292
|
+
automaticLayout: true,
|
|
293
|
+
})
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
> 详细说明见 [Monaco Editor 指南](https://nasti.zixiaolabs.com/pages/monaco.html)。
|
|
297
|
+
|
|
246
298
|
## License
|
|
247
299
|
|
|
248
300
|
[MIT](./LICENSE) - Made by [zixiao-labs](https://github.com/zixiao-labs)
|