{"id":230847,"date":"2022-12-15T14:25:00","date_gmt":"2022-12-15T11:25:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230847"},"modified":"2022-12-07T11:37:56","modified_gmt":"2022-12-07T08:37:56","slug":"compositor-sin-integracion-continua","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/compositor-sin-integracion-continua\/","title":{"rendered":"Compositor Sin Integraci\u00f3n Continua"},"content":{"rendered":"\n<p>Si es un desarrollador de WordPress que usa Composer sin una integraci\u00f3n continua, es probable que le quede un paso crucial para descubrir c\u00f3mo administrar el directorio de proveedores al implementar sus complementos.<\/p>\n<p>Eso es:<\/p>\n<ul>\n<li>Sabemos que es una mala idea poner todo el directorio de proveedores bajo control de c\u00f3digo fuente,<\/li>\n<li>Otros desarrolladores que est\u00e9n familiarizados con el uso de <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> deber\u00edan poder ponerse en marcha sin necesidad de mucha instrucci\u00f3n.<\/li>\n<li>La integraci\u00f3n continua no se utiliza por varias razones,<\/li>\n<li>Y nos quedamos con la necesidad de proporcionar un producto de nivel de producci\u00f3n que use ciertas dependencias pero no otras.<\/li>\n<\/ul>\n<p>Por mucho que los puntos anteriores puedan describir nuestra situaci\u00f3n, no nos dicen qu\u00e9 podemos hacer con ella.<\/p>\n<p>En otras palabras, aqu\u00ed est\u00e1 el caso de uso: ha creado un complemento de WordPress para alguien. Este complemento utiliza una variedad de dependencias, todas las cuales son mantenidas por Composer.<\/p>\n<p>No est\u00e1 verificando el directorio de proveedores en el repositorio, pero tampoco est\u00e1 utilizando la integraci\u00f3n continua para implementar el complemento. En cambio, el cliente es, o es un tercero.<\/p>\n<p>\u00bfEntonces, qu\u00e9?<\/p>\n<h2>Distribuci\u00f3n con Composer Sin Integraci\u00f3n Continua<\/h2>\n<p>La versi\u00f3n corta es esta:<\/p>\n<p>Exporte la rama maestra (o la rama de lanzamiento o como la llame) desde su copia local del complemento, luego aseg\u00farese de ejecutar el comando Composer que le indica que cree el directorio de proveedores sin las dependencias de nivel de desarrollo.<\/p>\n<p>Luego puede agrupar el archivo generado y distribuirlo a su cliente.<\/p>\n<h3>\u00bfPero c\u00f3mo?<\/h3>\n<p>Primero, asumo que la copia local de su complemento no tiene una copia del directorio del proveedor, pero tiene todo el c\u00f3digo m\u00e1s reciente extra\u00eddo del repositorio remoto.<\/p>\n<p>Es decir, tiene la \u00faltima versi\u00f3n estable del c\u00f3digo lista para publicarse, pero a\u00fan no est\u00e1 listo para hacerlo porque no tiene las dependencias necesarias para, por ejemplo, la carga autom\u00e1tica y otras funciones similares.<\/p>\n<p>El primer paso ser\u00e1 exportar el repositorio local a un archivo. <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2f47b8077d8bb58909d34a35baac786b#file-00-export-local-repository-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">As\u00ed es como puede hacerlo<\/a> coloc\u00e1ndolo en su escritorio:<\/p>\n<pre><code>$ git archive -o ~\/Desktop\/plugin-name.zip HEAD<\/code><\/pre>\n<p>A continuaci\u00f3n, indique a Composer que <a href=\"https:\/\/gist.github.com\/tommcfarlin\/2f47b8077d8bb58909d34a35baac786b#file-01-install-production-dependencies-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">instale las dependencias<\/a> que est\u00e1n fuera de la directiva <strong>require-dev<\/strong><code>composer.json<\/code> en su archivo:<\/p>\n<pre><code>$ composer install --no-dev<\/code><\/pre>\n<p>Ahora puede archivar el directorio generado en un complemento y distribuir ese archivo.<\/p>\n<h2>\u00bfEs esto ideal?<\/h2>\n<p>No dir\u00eda que esto es ideal, pero es una soluci\u00f3n para un caso de uso que ciertamente existe, as\u00ed que dir\u00eda que es algo que se puede hacer para resolver un problema espec\u00edfico.<\/p>\n<p>En \u00faltima instancia, si est\u00e1 buscando una forma de distribuir un complemento de WordPress que use Composer sin integraci\u00f3n continua, esta es una forma de hacerlo.<\/p>\n<p>Sin embargo, reconozco que es un caso de uso espec\u00edfico y, por lo tanto, tiene una soluci\u00f3n espec\u00edfica.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En \u00faltima instancia, si est\u00e1 buscando una forma de distribuir un complemento de WordPress que use Composer sin integraci\u00f3n continua, esta es una forma de hacerlo.<\/p>\n","protected":false},"author":1,"featured_media":235914,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716,831,800,861],"tags":[1172],"class_list":["post-230847","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-guia-para-principiantes","category-php-2","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=230847"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230847\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/235914"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=230847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=230847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=230847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}