{"id":230423,"date":"2022-11-26T15:13:00","date_gmt":"2022-11-26T12:13:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230423"},"modified":"2022-11-26T15:17:18","modified_gmt":"2022-11-26T12:17:18","slug":"como-configurar-o-linting-javascript-no-visual-studio-code","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/como-configurar-o-linting-javascript-no-visual-studio-code\/","title":{"rendered":"Como configurar o linting JavaScript no Visual Studio Code"},"content":{"rendered":"\n<p>Obviamente, sou um grande f\u00e3 de usar padr\u00f5es de codifica\u00e7\u00e3o sempre que voc\u00ea estiver escrevendo c\u00f3digo do lado do servidor (independentemente de ser WordPress, PSR2 ou qualquer outra coisa \u2013 desde que voc\u00ea esteja usando algo, acho que \u00e9 uma coisa boa).<\/p>\n<p>Mas quando se trata de escrever c\u00f3digo do lado do cliente, ou seja, JavaScript para este post, n\u00e3o vemos isso discutido tanto, embora eu o considere igualmente importante. O mesmo vale para CSS, <strong><a href=\"https:\/\/sass-lang.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Sass<\/a><\/strong> ou <strong><a href=\"http:\/\/lesscss.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">LESS<\/a><\/strong>, mas isso \u00e9 conte\u00fado para outro post.<\/p>\n<p>Para projetos recentes, usamos o guia de estilo JavaScript do Airbnb para nossos projetos. Sou f\u00e3 e acho que ajuda escrever JavaScript limpo e leg\u00edvel (que parece ter sido escrito pela mesma pessoa \u2013 o objetivo final dos padr\u00f5es de codifica\u00e7\u00e3o, certo?).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e7634149707.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e7634149707.png\" alt=\"Como configurar o linting JavaScript no Visual Studio Code\"><\/a><\/p>\n<p>Neste post, mostrarei o processo de configura\u00e7\u00e3o no <strong><a href=\"https:\/\/tommcfarlin.com\/tag\/visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Visual Studio Code.<\/a><\/strong><\/p>\n<h2>Linting JavaScript no Visual Studio Code<\/h2>\n<p>Esta postagem pressup\u00f5e que voc\u00ea esteja familiarizado com a configura\u00e7\u00e3o do <strong><a href=\"https:\/\/www.npmjs.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node Package Manager<\/a><\/strong> em sua m\u00e1quina local.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e763461bd2a.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e763461bd2a.png\" alt=\"Como configurar o linting JavaScript no Visual Studio Code\"><\/a><\/p>\n<p>Se voc\u00ea n\u00e3o for, ent\u00e3o eu tenho um guia de como fazer isso <strong><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/usando-o-homebrew-para-instalar-o-no-para-instalar-o-gulp\/\" title=\"neste post\">neste post<\/a><\/strong>. O atalho? \u00c9 literalmente t\u00e3o simples quanto <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/fab816cc1877f07d614675d9ed3093b3#file-01-install-node-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">isso<\/a><\/strong> (uma vez que o Homebrew \u00e9 instalado):<\/p>\n<p>Depois de configur\u00e1-lo (usando a referida postagem ou se j\u00e1 estiver configurado), voc\u00ea estar\u00e1 pronto para avan\u00e7ar com a instala\u00e7\u00e3o das ferramentas necess\u00e1rias para configurar o linting JavaScript no Visual Studio Code.<\/p>\n<h3>1 Instalando ESLint<\/h3>\n<p>Digamos, por exemplo, que voc\u00ea esteja executando um projeto em um diret\u00f3rio chamado acme no diret\u00f3rio Projetos do Dropbox. Se for esse o caso, navegue at\u00e9 o diret\u00f3rio de plugins para o referido projeto. Provavelmente ser\u00e1 algo assim:<\/p>\n<pre><code>$ cd ~\/Dropbox\/Projects\/acme\/wp-content\/plugins\/acme-plugin<\/code><\/pre>\n<p>Por aqui, voc\u00ea precisar\u00e1 instalar o ESLint e os arquivos de configura\u00e7\u00e3o do Airbnb. Felizmente, \u00e9 muito f\u00e1cil de fazer. No terminal, basta digitar o seguinte comando:<\/p>\n<pre><code>$ npm i -S eslint eslint-config-airbnb-base eslint-plugin-import<\/code><\/pre>\n<p>Estou assumindo que nenhum dos pacotes acima j\u00e1 est\u00e1 instalado. Nesse caso, como eslint, voc\u00ea pode remover esse argumento espec\u00edfico da linha acima.<\/p>\n<p>Al\u00e9m disso, \u00e9 importante entender que o projeto eslint-plugin-import \u00e9 importante para adicionar suporte para importa\u00e7\u00e3o e exporta\u00e7\u00e3o de m\u00f3dulos JavaScript.<\/p>\n<h3>2 A configura\u00e7\u00e3o do ESLint<\/h3>\n<p>H\u00e1 mais uma etapa necess\u00e1ria antes de obter a configura\u00e7\u00e3o no Visual Studio Code. Ou seja, \u00e9 uma quest\u00e3o de criar um arquivo de configura\u00e7\u00e3o ESLint. De dentro do diret\u00f3rio <strong>acme-plugin<\/strong> como mostrado acima, digite o seguinte comando:<\/p>\n<pre><code>$ touch .eslintrc.js<\/code><\/pre>\n<p>Isso criar\u00e1 um arquivo vazio (ou arquivo de ponto vazio, como alguns podem se referir a ele) e \u00e9 aqui que nossa configura\u00e7\u00e3o far\u00e1 refer\u00eancia ao guia de estilo do Airbnb.<\/p>\n<p>No arquivo, basta adicionar as seguintes linhas de c\u00f3digo de configura\u00e7\u00e3o:<\/p>\n<pre><code>module.exports = {\n\u00a0 \"extends\": \"airbnb-base\"\n};<\/code><\/pre>\n<p>Agora que voc\u00ea instalou o ESLint, tem uma refer\u00eancia ao guia de estilo do Airbnb e tem uma refer\u00eancia para dar suporte a sintaxe adicional, \u00e9 hora de configurar o Visual Studio Code.<\/p>\n<h3>3 Configurando o c\u00f3digo do Visual Studio<\/h3>\n<p>Na minha opini\u00e3o, essa \u00e9 a parte mais f\u00e1cil. Abra o painel de extens\u00f5es da maneira que melhor lhe convier (clicando no \u00edcone ou usando o atalho) e, em seguida, execute uma pesquisa por ESLint. Voc\u00ea pode ver v\u00e1rios resultados, mas o que voc\u00ea quer \u00e9 aquele que se parece com isso:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e7634f24def.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e7634f24def.png\" alt=\"Como configurar o linting JavaScript no Visual Studio Code\"><\/a><\/p>\n<p>Instale-o e recarregue o c\u00f3digo do Visual Studio. Ele deve ser definido em suas configura\u00e7\u00f5es padr\u00e3o, que voc\u00ea pode confirmar abrindo as configura\u00e7\u00f5es e procurando por este peda\u00e7o de c\u00f3digo:<\/p>\n<pre><code>\/\/ Controls whether eslint is enabled for JavaScript files or not.\n\"eslint.enable\": true,<\/code><\/pre>\n<p>Se n\u00e3o estiver presente, voc\u00ea poder\u00e1 adicion\u00e1-lo \u00e0s Configura\u00e7\u00f5es do usu\u00e1rio (n\u00e3o sou f\u00e3 de mexer com as configura\u00e7\u00f5es padr\u00e3o, caso voc\u00ea precise redefinir a partir de uma base limpa).<\/p>\n<p>Uma vez que isso \u00e9 definido, voc\u00ea est\u00e1 pronto para ir, e voc\u00ea deve ter seu JavaScript alinhado enquanto trabalha em seu projeto.<\/p>\n<h2>Outros gerenciadores de pacotes?<\/h2>\n<p>Acima, dei um exemplo de como fazer isso via Node; no entanto, tamb\u00e9m \u00e9 poss\u00edvel conseguir usando o Yarn. Isso \u00e9 algo sobre o qual pretendo escrever no futuro, mas como abordei o Node em um post anterior, parecia l\u00f3gico e mais f\u00e1cil seguir esse post com este conte\u00fado para refer\u00eancia.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e7635536e51.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164307-61e7635536e51.png\" alt=\"Como configurar o linting JavaScript no Visual Studio Code\"><\/a><\/p>\n<p>Quando chegar a hora de usar um gerenciador de pacotes diferente, especificamente o Yarn, tamb\u00e9m abordarei isso.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um passo a passo sobre como configurar o linting JavaScript no Visual Studio Code com NPM e a extens\u00e3o de c\u00f3digo necess\u00e1ria.<\/p>\n","protected":false},"author":1,"featured_media":164308,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,733,846],"tags":[1170],"class_list":["post-230423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-javascript-8","category-tutoriais","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=230423"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230423\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/164308"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}