rhandrade / tray-theme

CLI criado para ajudar desenvolvedores a criarem ótimos temas para Tray.
MIT License
20 stars 3 forks source link

Erro 500 Tray #22

Closed tiagogarcia75 closed 2 years ago

tiagogarcia75 commented 3 years ago

Olá pessoal, primeiramente, parabéns pelo projeto. Certamente vai ajudar muitas pessoas mesmo. Eu não tenho tanto conhecimento pra contribuir mais, mas pretendo ajudar no pouco que puder. Estava fazendo alguns teste, e sempre que altero algum arquivo scss, o watch retorna erro 500 - internal error.

Não sei se aqui é o lugar certo de perguntar isso, me desculpe se fiz errado, mas gostaria de relatar isso. O restante está funcionando tudo ok.

thiagofloriano commented 3 years ago

@tiagogarcia75 Até onde sei, a Tray não aceita arquivos scss, infelizmente. É um absurdo, mas a dura realidade.

thiagofloriano commented 3 years ago

@rhandrade @leolopes Aproveitando a deixa, talvez fosse uma boa retornar uma mensagem mais descritiva.

Não sei como estão pensando em fazer o tratamento dessas respostas, mas acho que vale pensar um pouco nisso. 💪

leolopes commented 3 years ago

Bom dia, pessoal. A Tray antigamente aceitava arquivos .scss, mas hoje não aceita mais. Já temos até um PR que em breve vai ser mesclado ao master, que lida com a validação de extensões de arquivo para evitar envios desnecessários.

Quanto à mensagem de erro, o problema para fazer uma mensagem mais descritiva é saber o que realmente significa a mensagem, e, em alguns casos, só a API é capaz de dizer. Se não disser, não sabemos bem.

Por fim, @tiagogarcia75, obrigado pela contribuição. Recomendo também ler esta issue para contribuições futuras.

rhandrade commented 3 years ago

Seja bem-vindo ao projeto @tiagogarcia75. Toda colaboração será sempre bem recebida!

Sobre a questão do problema dos arquivos .scss, abri um ticket essa semana na Tray sobre esse problema. Aparentemente o erro está acontecendo somente no retorno da API, mas o arquivo está sendo criado dentro do tema. A Tray me confirmou que o suporte a arquivos .scss continua, e que eles estão verificando o porque é retornado erro.

Enquanto a Tray não corrigi isso, precisaremos descobrir um modo de como indicar isso no CLI. A API da Tray só me retorna isso hoje: image

@leolopes Talvez será necessário modificar essa PR #16 para que ela aceite os arquivos scss visto essa nova confirmação que a Tray me deu.

leolopes commented 3 years ago

Combinado, vou alterar assim que der

leolopes commented 3 years ago

Eu atualizei o PR para aceitar .scss, mas não me atentei de dar algum tipo de resposta para o erro 500. Não sei se seria prioritário agora, me diga o que acha. Caso seja prioritário, podemos colocar uma mensagem específica quando der um erro 500 no envio de arquivos .scss, dizendo que talvez tenha dado certo o envio...

lucaswalder commented 3 years ago

Boa tarde pessoal, quero também agradecer pelo projeto, sensacional. Estou começando agora no mundo dos devs e sou bastante cru em algumas partes, antes tinha instalando o opencode, mas tive que mudar de computador e depois de inumeras tentativas encontrei esse projeto maravilhoso. Porém tenho erro no arquivo gulp que tem non workflow, quando rodo ele na primeira vez, ele sobe os arquivos, mas depois quando salvo eles da o erro 500 e ai nao sobe nenhum arquivo nem as tarefas sao automatizadas mais, poderiam me ajudar? Desculpa se nao é o local certo, mas isso tem atrasado muito meu fluxo de trabalho. E mais uma vez, parabéns.

rhandrade commented 3 years ago

Primeiramente muito obrigado @lucaswalder pelo reconhecimento e seja bem-vindo! Sobre o problema, poderia mandar o código do arquivo gulpfile e o erro que aparece para você para que possamos que te ajudar?

lucaswalder commented 3 years ago

Obg pela ajuda @rhandrade , vou te enviar aqui as imagens e os arquivos O erro que dá quando rodo o arquivo gulp, na hora de subir os arquivos scss

[11:28:13] Starting 'default'...
[11:28:13] Starting 'watch'...
[11:28:13] Starting 'tray'...
[11:28:13] Starting 'sass'...
[11:28:13] Starting 'js'...
[11:28:14] Finished 'sass' after 396 ms
[11:28:14] Finished 'js' after 417 ms
[11:28:20] Watching files...
[11:28:35] [Fail] Error when uploading file css/sass/_theme.scss. Error: Api retu
rn status 500 - Internal server error
 um erro no processo de envio de arquivo

E o arquivo gulp que estou usando é esse:

var gulp = require("gulp");
var sass = require("gulp-sass");
var concat = require('gulp-concat');
var minifyCSS = require('gulp-cssmin');
var spawn = require('cross-spawn');
var uglify = require('gulp-uglify');
const alert = require('ansi-colors');

var FOLDER;
for (var i = process.argv.length; i > 0; i--) {
    var arg = process.argv[i];
    var nextArg = process.argv[i + 1];

    if (arg == '--folder' && nextArg) {
        FOLDER = process.cwd() + '/' + nextArg;
    }
}

const JSPATH = FOLDER + '/js/';
const CSSPATH = FOLDER + '/css/';

gulp.task('js', (done) => {
    gulp.src(JSPATH + "modules/theme.js")
    .pipe(concat("theme.min.js"))
    .pipe(uglify({"compress": false}))
    .pipe(gulp.dest(JSPATH));
    done()
});

gulp.task('sass', function(done) { 
    gulp
    .src(CSSPATH + 'sass/theme.min.scss')
    .pipe(sass())
    .pipe(concat('theme.min.css'))
    .on("error", sass.logError)
    .pipe(minifyCSS())
    .pipe(gulp.dest(CSSPATH))
    done()
})

gulp.task('tray', () => {
    process.chdir(FOLDER);

    var opencode = spawn('tray', ['watch']);

    opencode.stdout.on('data', (data) => {
        var output = alert.green(data);
        if (data.indexOf('Error') > -1) {
            output = alert.red(data);
        }
        process.stdout.write(output);
    });

    opencode.stderr.on('data', (data) => {
        process.stdout.write(alert.red(data));
    });
});

gulp.task('watch', () => {
    gulp.watch(CSSPATH + 'sass/*', gulp.series('sass'));
    gulp.watch(JSPATH + 'modules/*.js', gulp.series('js'));
});

gulp.task('default', gulp.parallel('watch', 'tray', 'sass','js' ));

Se puder ajudar, ficarei imensamente grato.

thiagofloriano commented 3 years ago

@lucaswalder Vale dar uma olhada pelo painel administrativo se os arquivos foram enviados apesar da mensagem de erro no terminal.

@rhandrade commented 20 days ago:

[...] Aparentemente o erro está acontecendo somente no retorno da API, mas o arquivo está sendo criado dentro do tema. A Tray me confirmou que o suporte a arquivos .scss continua, e que eles estão verificando o porque é retornado erro. [...]

lucaswalder commented 3 years ago

@thiagofloriano os arquivos scss sobem, porém depois que dá o erro o gulp não minifica os arquivos e não sobe o arquivo css

rhandrade commented 3 years ago

@lucaswalder Pode ser pelo uso da função gulp.task que já não é mais recomendada pelo Gulp, além do que é recomendado sempre dar um return quando estiver usando o objeto gulp. Você pode ser o mesmo efeito usando uma função normal e o exports. Por exemplo a js ficaria assim:

function js(){
    return gulp
        .src(JSPATH + "modules/theme.js")
        .pipe(concat("theme.min.js"))
        .pipe(uglify({"compress": false}))
        .pipe(gulp.dest(JSPATH));
}

exports.js = js;

Ai na hora de usar no parallel pode ser feito assim gulp.parallel(watch, tray);

No mais veja se algum outro script seu está retornando um erro, pois essa linha um erro no processo de envio de arquivo não é disparada pelo CLI.

Outra ponto seria modificar um pouco o modo como está fazendo. Já que está rodando o SASS localmente, não seria necessário enviá-lo para a tray. Poderia jogar todos os arquivos sass para fora da estrutura do tema, e fazer somente o arquivo css final ser enviado para a Tray. Isso poderia otimizar seu fluxo de trabalho.

Exemplo:

|-sass
    - Arquivos .scss nessa pasta
|-theme
    - Essa pasta teria toda a estrutura a ser enviada para a Tray

Eu geralmente rodo o gulp e o CLI separadamente, pois acredito que cada um tem sua função específica e fica mais fácil validar caso aconteça algum erro. Pode tentar fazer esse teste também e rodar o CLI em um terminal separado.