Comment développer la configuration client avec vue3+electron12+dll
Modifier la source de l'entrepôt
En raison de l'inconnu de la version électronique, il peut arriver que le serveur soit disponible et qu'un écran blanc s'ouvre après la construction, il doit donc être traité avec prudence. Il est préférable de valider une version lorsqu'elle est disponible pour faciliter la restauration du code. Si quelqu'un a de meilleures informations, il aimerait les partager.
Avant de démarrer la configuration, vous pouvez modifier légèrement les fichiers rc de Yarn et NPM. Utilisez des commandes ou des fichiers pour modifier directement .npmrc ou .yarnrc. Ces deux fichiers de configuration globaux se trouvent généralement dans le dossier C:user de votre compte actuel. , ou créez un nouveau fichier rc de commande de fichier sous le projet en cours pour modifier localement la configuration.
Étant donné que le téléchargement d'électrons échouera en raison de problèmes de réseau, il est remplacé par la source Taobao, la source Huawei peut également être utilisée.
npm set config registry http://registry.npm.taobao.org/ npm set config chromedriver_cdnurl http://registry.npm.taobao.org/chromedriver npm set config electron_mirror http://registry.npm.taobao.org/electron/ npm set config electron_builder_binaries_mirror http://registry.npm.taobao.org/electron-builder-binaries/
Dans le processus d'installation, utilisez vue create
Démarrage
La commande de démarrage correspondante a été assemblée dans package.json
Utilisez npm run electronic:serve pour démarrer le développement
npm run electronic:build pour compiler et empaqueter pour la production
. Remplacez vue- devtools
Le src/background.ts sous le projet est le répertoire de démarrage d'Electron. Dans l'environnement de développement, les situations suivantes se produiront où le temps d'attente de démarrage est long
Lancement d'Electron...
Échec de la récupération de l'extension, tentative 4 fois supplémentaire
Échec de la récupération de l'extension, tentative 3 fois supplémentaires
Échec de la récupération de l'extension, tentative 2 fois supplémentaires
Échec de la récupération de l'extension, tentative 1 fois supplémentaire
est dû au fait que le projet doit être connecté sur le Google Store pour télécharger et charger vue-devtools.
J'ai essayé de nombreuses façons de charger les outils, mais toutes ont échoué. La méthode temporaire est donc la suivante : supprimer les outils. Le code est trouvé, supprimez simplement installExtension
app.on('ready', async () => { if (isDevelopment && !process.env.IS_TEST) { // Install Vue Devtools try { // await installExtension(VUEJS_DEVTOOLS) } catch (e) { console.error('Vue Devtools failed to install:', e.toString()) } } createWindow() })
J'ai déjà essayé de nombreuses méthodes mais cela n'a pas fonctionné. Plus tard, j'ai soigneusement comparé ce qui suit et j'ai trouvé quelques problèmes.
La version vue3 est différente de la version vue2 de vue-devtools, donc les outils de développement de vue2 ne peuvent pas être utilisés par vue3. Par conséquent, vous devez télécharger les outils de développement correspondant à vue3. La dernière version de vue2 est la 5.x, tandis que la version de vue3 est la version bêta 6.x. Cette version du plugin peut être téléchargée via crx4chrome. Décompressez le crx téléchargé, puis copiez-le dans le répertoire racine du projet. Utilisez le chargement de session pour remplacer la partie d'origine wait installExtension (VUEJS_DEVTOOLS) par
import {session} from 'electron' app.on('ready', async () => { if (isDevelopment && !process.env.IS_TEST) { // Install Vue Devtools try { const vue_devtools = 'ljjemllljcmogpfapbkkighbhhppjdbg-6.0.0-beta-13-Crx4Chrome.com' await session.defaultSession.loadExtension(path.resolve(vue_devtools)) } catch (e) { console.error('Vue Devtools failed to install:', e.toString()) } } createWindow() })
Après avoir démarré le projet, vous pouvez afficher l'extension vue. Pour
Vous pouvez l'ignorer. Si vous ne voulez pas voir d'invites ennuyeuses, vous pouvez supprimer le contenu correspondant aux invites dans le fichier manifest.json de toolsNotes(nœud : 5904) ExtensionLoadWarning : avertissements lors du chargement de l'extension sur E:scanvue3_electronljjemllljcmogpfapbkkighbhhppjdbg-6.0.0-beta-13-Crx4Chrome.com :
Clé manifeste non reconnue 'browser_action'.
Clé manifeste non reconnue 'update_ url'.
Autorisation « contextMenus » est inconnu ou le modèle d'URL est mal formé.
Impossible de charger l'extension avec le nom de fichier ou de répertoire _metadata. Les noms de fichiers commençant par « _ » sont réservés à l'utilisation par le système. pour montrer où l'avertissement a été créé)
Lors de l'utilisation de la configuration du script en tant que module, l'étape de service peut être utilisée normalement, mais après la construction, le composant n'est pas chargé, la page est vide et aucune erreur n'est signalée. La raison est inconnueUtilisation d'électron-edge-js pour le chargement. le fichier dll développé par c#, le processus de configuration est légèrement fastidieux et il a fallu 2 jours pour trouver la réponse, mais tout a échoué, voici la solution, vous devez prendre le bon médicament
Les Dll développées en c++ et c# utilisent différentes chargeurs, et c++ utilise ffi-napi.L'utilisation de Edge nécessite l'ajout de trois configurations en même temps
module.exports = { pluginOptions: { electronBuilder: { externals: ['electron-edge-js'] } } }
Uncaught (promis) ReferenceError : __dirname n'est pas défini Vous devez d'abord configurer une nouvelle fenêtre de navigateur
{ // 如果使用到nodejs的api,则打包时需要将此设置为true nodeIntegration: true, // 同时,需要设置此项为false // 未设置时报 Uncaught ReferenceError: require is not defined contextIsolation: false }
Pour le moment, vous devez continuer à ajouter des éléments de configuration de vue.config.js
module.exports = { pluginOptions: { electronBuilder: { externals: ['electron-edge-js'], // 此处同样需要开启,将会在编译阶段将引用关系写入 nodeIntegration: true, } } }
此外,对于dll放置的文件夹,一般在项目根目录创resources用于存放资源,并且项目打包过程中会不会直接打包资源目录,所以需要增加资源配置,以防止出错。对于文件的引用,在开发环境下,为当前所看到的结构,当编译打包后,为安装目录下resources目录,所以生产和开发的引用文件存在一定区别,可以实验后再看文件引用
module.exports = { pluginOptions: { electronBuilder: { externals: ['electron-edge-js'], // 此处同样需要开启,将会在编译阶段将引用关系写入 nodeIntegration: true, builderOptions:{ extraResources: { // 拷贝静态文件到指定位置,否则会提示文件找不到 from: 'resources/', to: './' }, } } } }
提供文件获取目录方法,可以直接获取不同操作系统下app的resource目录,如果是window即 process.platform==='win32'
const path = require('path') export function getAppResourcePath (filePath:string) { if (process.platform === 'darwin' || process.platform === 'linux') { if (process.env.NODE_ENV === 'development') { return path.resolve('resources/' + filePath) } else { return path.join(__dirname, '..') + filePath } } else { return path.resolve('resources/' + filePath) } }
使用setup语法时,需使用require('electron-edge-js')引入,不可以使用import,否则会报 Syntax Error: TypeError: Cannot read property 'content' of null 而非 setup语法,则可以直接import
无边框窗口
系统本身是带有框架的,如果需要自定义框架,可以使用frameless 设置,如果需要使用自定义组件(比如 div.custom-frame-title)拖拽操作窗口时,需要给对应的元素增加样式:
.custom-frame-title { -webkit-user-select: none; // 此项防止与文本选择冲突 -webkit-app-region: drag; // 此项为系统相应状态栏 }
前后台通知
import {ipcMain,ipcRenderer} from 'electron'
在electron中有很多可用api,其中最重要的是:ipcMain和ipcRenderer,用于ui进程和系统进程的通信。 在vue内使用ipcRenderer.on('eventname') 接受系统发来的消息,用ipcRenderer.send('eventname') 发送通知给系统,同样ipcMain可以在主线程使用。
ipc通常结合自定义标题栏完成以下操作,或者其他需要操作窗口本身的事件
win.minimize() //最小化窗口 win.maximize() //最大化窗口 win.close() //关闭窗口 win.hide() //隐藏窗口
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Si Nvgpucomp64.dll provoque des plantages fréquents de votre jeu, les solutions fournies ici peuvent vous aider. Ce problème est généralement dû à des pilotes de carte graphique obsolètes ou corrompus, à des fichiers de jeu corrompus, etc. La résolution de ces problèmes peut vous aider à résoudre les plantages du jeu. Le fichier Nvgpucomp64.dll est associé aux cartes graphiques NVIDIA. Lorsque ce fichier plante, votre jeu plante également. Cela se produit généralement dans des jeux comme LordsoftheFallen, LiesofP, RocketLeague et ApexLegends. Nvgpucomp64.dll plante les jeux sur un PC Windows si N

De nombreux utilisateurs seront informés que coremessaging.dll est manquant lorsqu'ils utilisent leur ordinateur pour jouer à des jeux. Je pense que de nombreux utilisateurs penseront immédiatement qu'il y a un problème avec le logiciel ou le jeu. En fait, ce n'est pas le cas. Il manque le fichier dll sur l'ordinateur, les utilisateurs peuvent télécharger le fichier coremessaging.dll. Laissez ce site présenter soigneusement aux utilisateurs l'analyse du problème selon lequel le fichier CoreMessaging.dll dans le répertoire système Windows est manquant et introuvable. Analyse du problème selon lequel le fichier CoreMessaging.dll est manquant et introuvable dans le répertoire système Windows 1. Téléchargez le fichier CoreMessaging.dll 2.

vue3+vite:src utilise require pour importer dynamiquement des images et des rapports d'erreurs et des solutions. vue3+vite importe dynamiquement plusieurs images. Si vue3 est développé à l'aide de TypeScript, il y aura un message d'erreur indiquant que requireisnotdefined ne peut pas être utilisé comme imgUrl. :require(' .../assets/test.png') est importé car TypeScript ne prend pas en charge require, donc l'importation est utilisée. Voici comment le résoudre : utilisez waitimport.

tinymce est un plug-in d'éditeur de texte riche entièrement fonctionnel, mais l'introduction de tinymce dans vue n'est pas aussi fluide que les autres plug-ins de texte riche de Vue. tinymce lui-même ne convient pas à Vue, et @tinymce/tinymce-vue doit être introduit, et Il s'agit d'un plug-in de texte riche étranger et n'a pas passé la version chinoise. Vous devez télécharger le package de traduction depuis son site officiel (vous devrez peut-être contourner le pare-feu). 1. Installez les dépendances associées npminstalltinymce-Snpminstall@tinymce/tinymce-vue-S2. Téléchargez le package chinois 3. Introduisez le skin et le package chinois Créez un nouveau dossier tinymce dans le dossier public du projet et téléchargez le.

Pour réaliser un rafraîchissement partiel de la page, il suffit d'implémenter le re-rendu du composant local (dom). Dans Vue, le moyen le plus simple d'obtenir cet effet est d'utiliser la directive v-if. Dans Vue2, en plus d'utiliser l'instruction v-if pour restituer le dom local, nous pouvons également créer un nouveau composant vierge. Lorsque nous devons actualiser la page locale, accéder à cette page de composant vierge, puis y revenir. la garde beforeRouteEnter dans la page d’origine vierge. Comme le montre la figure ci-dessous, comment cliquer sur le bouton d'actualisation dans Vue3.X pour recharger le DOM dans la zone rouge et afficher l'état de chargement correspondant. Puisque la garde dans le composant dans la syntaxe scriptsetup dans Vue3.X n'a que o

Pour implémenter le front-end du blog avec Vue, vous devez implémenter l'analyse markdown. S'il y a du code, vous devez implémenter la mise en évidence du code. Il existe de nombreuses bibliothèques d'analyse de démarques pour Vue, telles que markdown-it, vue-markdown-loader, Markdown, vue-markdown, etc. Ces bibliothèques sont toutes très similaires. Marked est utilisé ici et highlight.js est utilisé comme bibliothèque de mise en évidence du code. Les étapes d'implémentation spécifiques sont les suivantes : 1. Installez les bibliothèques dépendantes. Ouvrez la fenêtre de commande sous le projet vue et entrez la commande suivante npminstallmarked-save//marked pour convertir le markdown en htmlnpmins.

Comment résoudre le problème de libcurl.dll manquant dans le système win7 ? Généralement, les fichiers dll empêcheront certains programmes d'être utilisés normalement. Face à ce problème, de nombreux utilisateurs ne savent pas comment le résoudre. En réponse à cette situation, l'éditeur partagera aujourd'hui une solution détaillée avec la majorité des utilisateurs. . J'espère que Win7 sera utilisé aujourd'hui. Les didacticiels pourront aider un grand nombre d'utilisateurs, alors jetons-y un coup d'œil. Solution au problème libcurl.dll manquant dans le système win7 1. Téléchargez le fichier libcurl.dll. 2. Après le téléchargement, placez le fichier dans le dossier correspondant. Les chemins pour les systèmes d'exploitation 32 bits et 64 bits sont les suivants : Pour le système d'exploitation Win7 32 bits, copiez le fichier directement dans C:\Windows\SYSTEM32.

L'effet final est d'installer le composant VueCropper filaddvue-cropper@next. La valeur d'installation ci-dessus est pour Vue3 ou si vous souhaitez utiliser d'autres méthodes de référence, veuillez visiter son adresse officielle npm : tutoriel officiel. Il est également très simple de le référencer et de l'utiliser dans un composant. Il suffit d'introduire le composant correspondant et son fichier de style. Je ne le référence pas globalement ici, mais j'introduis uniquement import{userInfoByRequest}from'../js/api. ' dans mon fichier de composant import{VueCropper}from'vue-cropper&.
