1
resposta

Faça como eu fiz: criando um projeto com vite.

Index.html

<script type="module" src="/main.js"></script>
  <!DOCTYPE html>
  <html lang="pt-br">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" href="./assets/favicon.png" type="image/x-icon">
    <title>Serenatto</title>
    <link
      href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700&family=Barlow:wght@400;600&display=swap"
      rel="stylesheet">
    <link rel="stylesheet" href="./styles/mainc:\Users\Estanislau\Desktop\Serenatto\assets

scss

* {
    margin: 0;
    padding: 0;
}

$primary-color: #212529;
$secondary-color: #fff;
$accent-color: #8A5E36;
$font-family-primary: 'Barlow', sans-serif;

body {
    font-family: $font-family-primary;
    background-color: $secondary-color;
    color: $primary-color;

    a {
        color: $primary-color;

        &:hover {
            color: $accent-color;
        }
    }
}

E na hora de fazer a importação aparece o seguinte erro:[vite] Pre-transform error: Preprocessor dependency "sass-embedded" not found. Did you install it? Try npm install -D sass-embedded.

1 resposta

Olá, Estanislau, como vai?

Sobre o erro que você mencionou, ele ocorre porque o Vite utiliza o pacote sass-embedded para compilar arquivos .scss, e esse pacote não está instalado nas dependências de desenvolvimento do seu projeto.

Para corrigir, abra o terminal na raiz do seu projeto e rode:

npm install -D sass-embedded

Esse comando instala o sass-embedded como uma dependência de desenvolvimento, permitindo que o Vite processe seus arquivos SCSS normalmente.

Além disso, percebi que no trecho do seu HTML você colocou o seguinte:

<link rel="stylesheet" href="./styles/mainc:\Users\Estanislau\Desktop\Serenatto\assets">

Verifique se esse caminho está correto. Geralmente, usamos caminhos relativos ao diretório do projeto, como:

<link rel="stylesheet" href="./styles/main.css">

Mas, como o Vite processa o SCSS e gera o CSS, você deve importar o arquivo SCSS diretamente no main.js:

import './styles/main.scss';

Também é importante observar que a tag <script> está fora da estrutura correta do documento HTML. Para que o navegador interprete o arquivo como um documento HTML válido, o <script> precisa estar dentro da estrutura <html>. Veja como ficaria organizado:

<!DOCTYPE html>
<html lang="pt-br">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="shortcut icon" href="./assets/favicon.png" type="image/x-icon">
  <title>Serenatto</title>
  <link
    href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700&family=Barlow:wght@400;600&display=swap"
    rel="stylesheet">
  <link rel="stylesheet" href="./styles/main.css">
</head>
<body>
  <!-- Conteúdo do seu projeto -->
  <script type="module" src="/main.js"></script>
</body>
</html>

Colocar o <script> antes do fechamento da tag <body> é uma prática comum para garantir que o HTML seja carregado antes do JavaScript.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado