commit
b0876e1b2a
34
README.md
34
README.md
|
@ -36,7 +36,7 @@ npm create electron-vite
|
||||||
```tree
|
```tree
|
||||||
├── electron Electron-related code
|
├── electron Electron-related code
|
||||||
│ ├── main Main-process source code
|
│ ├── main Main-process source code
|
||||||
│ ├── preload Preload-script source code
|
│ ├── preload Preload-scripts source code
|
||||||
│ └── resources Resources for the production build
|
│ └── resources Resources for the production build
|
||||||
│ ├── icon.icns Icon for the application on macOS
|
│ ├── icon.icns Icon for the application on macOS
|
||||||
│ ├── icon.ico Icon for the application
|
│ ├── icon.ico Icon for the application
|
||||||
|
@ -52,28 +52,20 @@ npm create electron-vite
|
||||||
└── src Renderer source code, your React application
|
└── src Renderer source code, your React application
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🚨 `dependencies` vs `devDependencies`
|
## 🚨 Be aware
|
||||||
|
|
||||||
**Put Node.js packages in `dependencies`**
|
By default, this template integrates Node.js in the Renderer process. If you don't need it, you just remove the option below. [Because it will modify the default config of Vite](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#config-presets-opinionated).
|
||||||
|
|
||||||
**e.g.** `electron-store` `sqlite3` `serilaport` `mongodb` ...others
|
```diff
|
||||||
|
# vite.config.ts
|
||||||
|
|
||||||
**Put Web packages in `devDependencies`**
|
electron({
|
||||||
|
- renderer: {}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
**e.g.** `react` `react-dom` `react-router` `mobx` `zustand` `antd` `axios` ...others
|
## FAQ
|
||||||
|
|
||||||
See more 👉 [dependencies vs devDependencies](https://github.com/electron-vite/vite-plugin-electron-renderer#dependencies-vs-devdependencies)
|
- [dependencies vs devDependencies](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#dependencies-vs-devdependencies)
|
||||||
|
- [Using C/C++ native addons in Electron-Renderer](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#load-nodejs-cc-native-modules)
|
||||||
## 🚨 Node.js ESM packages
|
- [Node.js ESM packages](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#nodejs-esm-packages) (e.g. `execa` `node-fetch`)
|
||||||
|
|
||||||
**e.g.** `node-fetch` `execa` `got` ...
|
|
||||||
|
|
||||||
[👉 Using Node.js ESM packages in Electron-Renderer](https://github.com/electron-vite/vite-plugin-electron-renderer#-nodejs-esm-packages)
|
|
||||||
|
|
||||||
<!--
|
|
||||||
- First, you need to know if your dependencies are needed after the application is packaged.
|
|
||||||
|
|
||||||
- Like [serialport](https://www.npmjs.com/package/serialport), [sqlite3](https://www.npmjs.com/package/sqlite3) they are node-native modules and should be placed in `dependencies`. In addition, Vite will not build them, but treat them as external modules.
|
|
||||||
|
|
||||||
- Dependencies like [Vue](https://www.npmjs.com/package/vue) and [React](https://www.npmjs.com/package/react), which are pure javascript modules that can be built with Vite, can be placed in `devDependencies`. This reduces the size of the application.
|
|
||||||
-->
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
## 概述
|
## 概述
|
||||||
|
|
||||||
📦 开箱即用
|
📦 开箱即用
|
||||||
🎯 基于 [react-ts](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) 模板, 低侵入性
|
🎯 基于官方的 [react-ts](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) 模板, 低侵入性
|
||||||
🌱 结构清晰,可塑性强
|
🌱 结构清晰,可塑性强
|
||||||
💪 支持在渲染进程中使用 Electron、Node.js API
|
💪 支持在渲染进程中使用 Electron、Node.js API
|
||||||
🔩 支持 C/C++ 模块
|
🔩 支持 C/C++ 模块
|
||||||
|
@ -36,7 +36,7 @@ npm create electron-vite
|
||||||
```tree
|
```tree
|
||||||
├── electron Electron 源码文件夹
|
├── electron Electron 源码文件夹
|
||||||
│ ├── main Main-process 源码
|
│ ├── main Main-process 源码
|
||||||
│ ├── preload Preload-script 源码
|
│ ├── preload Preload-scripts 源码
|
||||||
│ └── resources 应用打包的资源文件夹
|
│ └── resources 应用打包的资源文件夹
|
||||||
│ ├── icon.icns 应用图标(macOS)
|
│ ├── icon.icns 应用图标(macOS)
|
||||||
│ ├── icon.ico 应用图标
|
│ ├── icon.ico 应用图标
|
||||||
|
@ -52,33 +52,21 @@ npm create electron-vite
|
||||||
└── src 渲染进程源码、React代码
|
└── src 渲染进程源码、React代码
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🚨 依赖放到 dependencies 还是 devDependencies
|
|
||||||
|
|
||||||
**Node.js 包放到 `dependencies` 中**
|
## 🚨 这需要留神
|
||||||
|
|
||||||
**e.g.** `electron-store` `sqlite3` `serilaport` `mongodb` ...others
|
默认情况下,该模板在渲染进程中集成了 Node.js,如果你不需要它,你只需要删除下面的选项. [因为它会修改 Vite 默认的配置](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#config-presets-opinionated).
|
||||||
|
|
||||||
**Web 包放到 in `devDependencies` 中**
|
```diff
|
||||||
|
# vite.config.ts
|
||||||
|
|
||||||
**e.g.** `react` `react-dom` `react-router` `mobx` `zustand` `antd` `axios` ...others
|
electron({
|
||||||
|
- renderer: {}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
看看这 👉 [dependencies vs devDependencies](https://github.com/electron-vite/vite-plugin-electron-renderer#dependencies-vs-devdependencies)
|
## FAQ
|
||||||
|
|
||||||
|
- [dependencies vs devDependencies](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#dependencies-vs-devdependencies)
|
||||||
## 🚨 Node.js ESM packages
|
- [Using C/C++ native addons in Electron-Renderer](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#load-nodejs-cc-native-modules)
|
||||||
|
- [Node.js ESM packages](https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer#nodejs-esm-packages) (e.g. `execa` `node-fetch`)
|
||||||
**e.g.** `node-fetch` `execa` `got` ...
|
|
||||||
|
|
||||||
[👉 在 Electron-Renderer 中使用 Node.js ESM 包](https://github.com/electron-vite/vite-plugin-electron-renderer#-nodejs-esm-packages)
|
|
||||||
|
|
||||||
<!--
|
|
||||||
  对待 **Electron-Main、Preload-Script** 时 vite 会以 lib 形式打包 commonjs 格式代码;
|
|
||||||
如果碰 node 环境的包可以直接放到 dependencies 中,vite 会解析为 require('xxxx');
|
|
||||||
electron-builder 打包时候会将 dependencies 中的包打包到 app.asar 里面
|
|
||||||
|
|
||||||
  对待 **Electron-Renderer** 时 vite 会以 ESM 格式解析代码;
|
|
||||||
像 vue、react 这种前端用的包可以直接被 vite 构建,所以不需要 vue、react 源码;
|
|
||||||
现实情况 vue、react 放到 dependencies 或 devDependencies 中都可以被正确构建;
|
|
||||||
但是放到 dependencies 会被 electron-builder 打包到 app.asar 里面导致包体变大;
|
|
||||||
所以放到 devDependencies 既能被正确构建还可以减小 app.asar 体积,一举两得
|
|
||||||
-->
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
"sass": "^1.53.0",
|
"sass": "^1.53.0",
|
||||||
"typescript": "^4.7.4",
|
"typescript": "^4.7.4",
|
||||||
"vite": "^2.9.14",
|
"vite": "^2.9.14",
|
||||||
"vite-plugin-electron": "^0.7.5"
|
"vite-plugin-electron": "^0.8.0"
|
||||||
},
|
},
|
||||||
"env": {
|
"env": {
|
||||||
"VITE_DEV_SERVER_HOST": "127.0.0.1",
|
"VITE_DEV_SERVER_HOST": "127.0.0.1",
|
||||||
|
|
Loading…
Reference in New Issue