Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Lidando com código PHP no meio do HTML a ser buildado pelo gulp

Na agência onde trabalho, há uma padronização no desenvolvimento, em que, ao invés de ter este tipo de código:

<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/estilos.css">
<link rel="stylesheet" href="css/mobile.css">

Tenho algo deste tipo:

<link rel="stylesheet" href="<?=$url;?>/css/reset.css">
<link rel="stylesheet" href="<?=$url;?>/css/estilos.css">
<link rel="stylesheet" href="<?=$url;?>/css/mobile.css">

Existe alguma forma de aplicar o gulp-usemin (conforme explicado no curso) fazendo com que ele "entenda" o código PHP ali no meio?

5 respostas

Oi Gustavo, pelo que eu entendi, o $url aponta para algum local na internet que hospede seus arquivos estáticos. Nesse caso, o processo de minificação e concatenação precisa desses arquivos localmente.

Nesse sentido, o arquivo minificado e concatenado já deveria estar nesse host para que sua aplicação em PHP possa utilizá-lo. Isso muda drásticamente a forma com que você fará o build do seu front-end.

Vou deixar aqui a questão aberta para ver se alguém lança uma luz sob esse problema.

Flavio

Apesar da variável $url apontar para um endereço na internet, os arquivos existem localmente. O que ocorre é que quando o projeto é aberto localmente, a variável $url carrega um valor diferente de quando é aberto no servidor de produção.

Entendi, mas o lance é que essa variável precisa ter um valor durante o processo de build e esse processo não é com a aplicação rodando (eu sei que você sabe disso, só estou reforçando aqui para quem for ler).

Eu não sei como resolver esse cenário específico, mas me interessei pelo seu problema.

Vou deixar aberta sua dúvida aqui algum tempo. Se eu encontrar algo ou dar um estalo aqui eu posto uma resposta.

Qual plugin você esta usando? O gulp-usemin? Se pudéssemos dizer para ele que dado <?=$url;?> ele deveria ignorar ou adotar um outro valor...um.. acho que é por ai.

solução!

Não sei se daria pra puxar algo do PHP, mas mesmo que dê, me parece uma mistura de tecnologias desnecessária que vai acabar estourando alguma hora.

Minha sugestão seria mudar esse tipo de funcionalidade (trocar o path dos assets em produção) para o build. E tirar do PHP esse trabalho.

Então em dev você escreve o CSS normal, tipo:

<link rel="stylesheet" href="css/reset.css">

E aí no seu build, entre todas as outras coisas que já faz, faz ele reescrever o path com o valor da URL de produção:

<link rel="stylesheet" href="//example.com/path/css/reset.css">

Existem vários plugins pra isso no gulp, como o cdnify.

Abraço

Flavio,

Respondendo a sua pergunta: sim, é o gulp-usemin que estou usando.

Sérgio,

Obrigado pela dica. Vou dar uma olhada com calma no cdnify.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software