Créer des add – ons personnalisés pour local à partir du volant
Le ro lourd, utilisé dans les coulisses locales, le rend rapide et portable. Si vous avez bricolé docker, vous savez peut – être deux choses: C’est très puissant et très compliqué. Local est une bonne abstraction à ces deux égards, tirant parti de sa puissance et cachant la complexité de l’exécution des conteneurs docker derrière une interface utilisateur efficace.
Bien que local ne soit pas aussi open source qu’atom, il dispose d’une API supplémentaire qui permet aux développeurs d’étendre leurs fonctionnalités avec des crochets, comme WordPress. Pour commencer à écrire des add – ons, Flywheel a publié deux add – ons sous licence mit, ainsi que quelques documents API sur le github Flywheel, donc regardons en profondeur. Au moment où j’écris cet article, écrire un simple add – in local, la documentation API de l’add – in est très mauvaise, bien qu’on m’ait dit qu’il serait bientôt mis à jour. Personnellement, j’aime sauter la documentation autant que possible, donc je vais commencer par une version simplifiée d’un exemple de plug – in que j’a i fourni sur github.
Commençons par Cloner le dépôt: GIT clone [protégé par courriel] : Plug – in de présentation jrgould \/ simple. GIT my promatic add – in et CD my promatic add – in installent les dépendances NPM et exécutent le script de construction. NPM install NPM run script Build this will create Lib Directory and transfile src \/ renderer. Et copiez – le dans lib. Maintenant, nous pouvons lier le plug – in directement au dossier add – ins locaux: LN – S \
Local vous demandera de redémarrer et quand il redémarrera, vous devriez voir ce qu’est un outil de développement Chrome.
Ta, donc quitter local et recommencer pourrait être une bonne idée.
Créer un composant nous fournissons un emplacement pour notre nouvel élément de menu en créant un composant personnalisé. Nous allons d’abord créer un nouveau fichier src \/ appelé mycomponent. Nous commencerons par le modèle suivant: \/ * src \/ mycomponent. JS * \/ module. Exports = function (Context) {Const component = context.react.component Const React = context.react Const $= context.jquery return class siteinfostats extension Component {Constructor (props) {super (props) \/ \/ init class Vars} componentdidmount () {\/ \/ Setup} componentwillunmount () {\/ \/ Decompose} render () {return Plug – in actif
Maintenant, il suffit d’afficher ce composant lorsque vous cliquez sur l’élément de menu \
Laissez – le faire quelque chose… Jusqu’à présent, c’est très inutile, alors voyons si notre plug – in peut faire quelque chose. Nous examinerons à nouveau le plug – in statistiques locales pour le Guide. Regardons la composante siteinfostats. JS pour voir comment exécuter une commande dans un conteneur d
Lorsque vous lancez exec docker, saisissez ici et définissez une limite sur la liste des plug – ins WP pour ne renvoyer que le nom du plug – in actif. Maintenant, il suffit d’exécuter la commande en utilisant le module Child _ Process du noeud, et nous avons une poignée sur la constante Child process. Nous utiliserons childprocess. Exec (), qui nous fait attendre la sortie au lieu de générer un démon qui doit surveiller les événements. Nous transmettrons également le contexte. Environnement Docker ENV to exec as an ENV option, it will ensure that exec docker is running in the correct docker Environment. C’est ainsi qu’il s’affiche dans docker env: \/ \/ exécute la commande et exécute le rappel lorsqu’il retourne à childprocess. Exec (command, {env: context.environment.dockerenv}, (error, stdout, stderr) = > {\/ \/ if (error) {this.setstate ({content:}
Erreur lors de la récupération de la liste des plug – ins actifs:
{stderr} ) } ) } Sinon {\/ \/ affiche le plug – in actif listé ici. Définissez l’état ({contenu: {stdout}
Est le plug – in à afficher. Voici l’ensemble de la méthode getpluginlist (): getpluginlist ({this.setstate ({content:
Chargement…
} ) \/\/ Utilisez siteId pour obtenir l’objet site et laissez le site = ceci. Accessoires. Sites [this.props.params.siteid] \/ \/ utilisez la commande BIND docker Binary Construct pour exécuter \