# electron_ui--electron_basics **Repository Path**: repok/electron_ui--electron_basics ## Basic Information - **Project Name**: electron_ui--electron_basics - **Description**: http://giteaz:3000/electron_ui/electron_basics.git - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-12 - **Last Updated**: 2024-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 环境 Electron 19.0.0 、 Node v16.14 (不再维护): https://www.electronjs.org/zh/docs/latest/tutorial/electron-timelines ```shell cat /etc/issue #Ubuntu 22.04.3 LTS \n \l nvm --version #0.39.7 # 如果nvm --version >= 0.39.3, 则需要加变量 NVM_NODEJS_ORG_MIRROR NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm list-remote NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm install v16.14.0 nvm list # v16.14.2 # v18.19.1 # 如果nvm --version >= 0.39.3, 则 nvm use只是在本bash终端内生效, 而 nvm alias 则是全局生效 #nvm use v16.14.0 nvm alias default v16.14.0 npm --version #8.3.1 node --version #v16.14.0 ``` # electron项目初始化 ## 新建package.json ```npm init -y``` ## 安装electron ```npm install -D electron@19.0.0``` # electron第一个窗口 直接运行: ```npx electron .``` 或者 将该命令写在 package.json中 , 再 运行 该命令 : ``` npm run start_electron ``` # browserWindow.loadURL('http://bing.com') 报错 ERR_NAME_NOT_RESOLVED ```shell npx electron . [39730:0228/162608.094168:ERROR:backend_impl.cc(2020)] Invalid file version or magic (node:39730) electron: Failed to load URL: http://bing.coom/ with error: ERR_NAME_NOT_RESOLVED (Use `electron --trace-warnings ...` to show where the warning was created) ``` # browserWindow.loadFile 正常 # nodemon 安装: ```npm install -D nodemon``` 使用: ```npx nodemon --exec electron .``` # 打开开发者工具 # 很奇怪 browserWindow.loadURL又正常了 # main.js做loadFile(index.html), index.html引入了render/RenderApp.js # 禁用全部警告: ELECTRON_DISABLE_SECURITY_WARNINGS(一刀切,并不好。有用的警告也看不到了) # Content-Security-Policy # 补index.html的meta # 默认情况下:渲染进程 render/RenderApp.js 中不允许 直接使用 nodejs 代码 # 渲染进程中集成nodejs 且 渲染进程和nodejs不隔离, 则渲染进程可以正常使用nodejs # 渲染进程中调用nodejs的fs以写磁盘文件 # 但是不建议在渲染进程中使用nodejs的api # linux操作系统、苹果操作系统(darwin) 下, 关闭所有窗口,主进程不会退出,因此要显示让主进程退出 # 获得焦点时,若所有窗口都关闭了,则新创建一个窗口 如果没有窗口打开则打开一个窗口 (macOS), https://www.electronjs.org/docs/latest/tutorial/quick-start#open-a-window-if-none-are-open-macos # electron@29.0.0、node v18.19.1 : preload.js调用fs写文件报错: Error: module not found: fs # 切换到的脚本: Electron 19.0.0 、 Node v16.14