Skip to content

Commit 4e8a5c9

Browse files
authored
Merge pull request #4 from electron-vite/v0.5.3
V0.5.3
2 parents 020f82c + 1b91a5b commit 4e8a5c9

File tree

5 files changed

+38
-32
lines changed

5 files changed

+38
-32
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11

2+
## [2022-07-07] v0.5.3
3+
4+
- 69eb531 docs: v0.5.3
5+
- cc98ed9 feat: `ResolveModules['options']` optional
6+
- db03a72 chore: remove `useNodeJs.default = useNodeJs`
7+
- c30dc1b fix(🐞): add `electron` to ` builtins
8+
29
## [2022-07-07] v0.5.2
310

411
- 9dd8d4c feat: export `resolveModules()`

README.md

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ By default, `vite-plugin-electron-renderer` treats packages in `dependencies`(CJ
6666

6767
**e.g.**
6868

69+
<!--
6970
###### Electron-Main
7071
7172
```js
@@ -75,6 +76,7 @@ import { ipcRenderer } from 'electron'
7576
const { readFile } = require('fs')
7677
const { ipcRenderer } = require('electron')
7778
```
79+
-->
7880

7981
###### Electron-Renderer(vite build)
8082

@@ -121,41 +123,31 @@ import { ipcRenderer } from 'electron'
121123
import { ipcRenderer } from 'vite-plugin-electron-renderer/plugins/use-node.js/electron-renderer.js'
122124
```
123125

124-
## 🚨 ESM packages
126+
[👉 See electron-renderer.js](https://github.com/electron-vite/vite-plugin-electron-renderer/blob/main/plugins/use-node.js/electron-renderer.js)
125127

126-
**e.g.** `node-fetch` `execa` `got` ...others
128+
## 🚨 Node.js ESM packages
127129

128-
1. `npm i vite-plugin-esmodule -D`
129-
2. Configure in vite.config.ts
130+
**e.g.** `node-fetch` `execa` `got` ...
130131

131-
```ts
132-
import esmodule from 'vite-plugin-esmodule'
133-
export default {
134-
plugins: [
135-
esmodule(['got', 'execa', 'node-fetch']),
136-
],
137-
}
138-
```
132+
In general, converting Node.js ESM packages is only required when using the Node.js API in Electron-Renderer, not in Electron-Main.
139133

140-
[👉 See electron-renderer.js](https://github.com/electron-vite/vite-plugin-electron-renderer/blob/main/plugins/use-node.js/electron-renderer.js)
134+
*通常的,只有在 Electron-Renderer 中使用 Node.js API 的情况下才需要转换 Node.js ESM 模块,而在 Electron-Main 中使用不必转换*
135+
136+
1. Use [vite-plugin-esmodule](https://github.com/vite-plugin/vite-plugin-esmodule) to load ESM modules
137+
2. It is recommended to put the ESM packages in the `devDependencies`
141138

142139
## How to work
143140

144141
The plugin is just the encapsulation of the built-in plugins of [electron-vite-boilerplate/packages/renderer/plugins](https://github.com/electron-vite/electron-vite-boilerplate/tree/main/packages/renderer/plugins)
145142

146-
###### Config presets
147-
148-
1. Fist, the plugin will configuration something.
149-
*If you do not configure the following options, the plugin will modify their default values*
150-
151-
* `base = './'`
152-
* `build.assetsDir = ''` -> *TODO: Automatic splicing `build.assetsDir`*
153-
* ~~`build.emptyOutDir = false`~~
154-
* `build.cssCodeSplit = false`
155-
* `build.rollupOptions.output.format = 'cjs'`
156-
* `resolve.conditions = ['node']`
157-
* Always insert the `electron` module into `optimizeDeps.exclude`
143+
## Config presets
158144

159-
2. The plugin transform Electron and Node.js built-in modules to ESModule format in `vite serve` phase.
145+
If you do not configure the following options, the plugin will modify their default values
160146

161-
3. Add Electron and Node.js built-in modules to Rollup `output.external` option in the `vite build` phase.
147+
- `base = './'`
148+
- `build.assetsDir = ''` -> *TODO: Support nested dir*
149+
- `build.emptyOutDir = false`
150+
- `build.cssCodeSplit = false`
151+
- `build.rollupOptions.output.format = 'cjs'`
152+
- `resolve.conditions = ['node']`
153+
- Always insert the `electron` module into `optimizeDeps.exclude`

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vite-plugin-electron-renderer",
3-
"version": "0.5.2",
3+
"version": "0.5.3",
44
"description": "Support use Node.js API in Electron-Renderer",
55
"main": "index.js",
66
"repository": {

plugins/use-node.js/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export interface UseNodeJs {
2020
}
2121

2222
export interface ResolveModules {
23-
(config: ResolvedConfig, options: Options): {
23+
(config: ResolvedConfig, options?: Options): {
2424
/** Node.js builtin modules */
2525
builtins: string[];
2626
/** dependencies of package.json */

plugins/use-node.js/index.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,10 @@ ${exportMembers}
165165
/**
166166
* @type {import('.').ResolveModules}
167167
*/
168-
function resolveModules(config, options) {
168+
function resolveModules(config, options = {}) {
169169
const root = config.root;
170170
const cwd = process.cwd();
171-
const builtins = builtinModules.filter(e => !e.startsWith('_')); builtins.push(...builtins.map(m => `node:${m}`));
171+
const builtins = builtinModules.filter(e => !e.startsWith('_')); builtins.push('electron', ...builtins.map(m => `node:${m}`));
172172
// dependencies of package.json
173173
let dependencies = [];
174174
// dependencies(ESM) of package.json
@@ -218,5 +218,12 @@ function lookupFile(filename, paths) {
218218
}
219219

220220
useNodeJs.resolveModules = resolveModules;
221-
useNodeJs.default = useNodeJs;
221+
// Function {
222+
// default: <ref *1> [Function: useNodeJs] {
223+
// resolveModules: [Function: resolveModules2],
224+
// default: [Circular *1]
225+
// },
226+
// resolveModules: [Getter]
227+
// }
228+
// useNodeJs.default = useNodeJs;
222229
module.exports = useNodeJs;

0 commit comments

Comments
 (0)