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

Error core/_mixins.scss

Boa tarde, Estou tentando implementar o Sass com o MDB Bootstrap em um exercício que venho fazendo, porem esta dando o seguinte erro:

D:\Denis\teste-font\node_modules\mdbreact\dist\scss>sass --watch mdb.scss:./css/mdb.css
>>> Sass is watching for changes. Press Ctrl-C to stop.
  directory ./css
      error core/_mixins.scss (Line 215: Functions may not be defined within control directives or other mixins.)

Oque fiz:

1- Instalei o Ruby e o Sass, quando executo o comando no CMD

D:\Denis\teste-font\node_modules\mdbreact\dist\scss>sass -v
Ruby Sass 3.5.6

Ele retorna tudo certo.

2- Entrei na pasta pelo CMD :

D:\Denis\teste-font\node_modules\mdbreact\dist\scss>

Executei o comando dir:

 Pasta de D:\Denis\teste-font\node_modules\mdbreact\dist\scss

02/04/2018  16:22    <DIR>          .
02/04/2018  16:22    <DIR>          ..
02/04/2018  16:22    <DIR>          .sass-cache
02/04/2018  16:12    <DIR>          core
02/04/2018  16:22    <DIR>          css
02/04/2018  16:12    <DIR>          free
06/03/2018  09:20             1.411 mdb.scss
06/03/2018  09:20                22 _custom.scss
               2 arquivo(s)          1.433 bytes
               6 pasta(s)   333.256.060.928 bytes disponíveis

D:\Denis\teste-font\node_modules\mdbreact\dist\scss>

Dentro dessa pasta tem o arquivo mdb.scss que pelo site do MDB é o arquivo que importa todos os SCSS da biblioteca e o ultimo a ser importado é o _custom.scss que é o arquivo onde eles recomendam fazer as alterações.

3-Nessa pasta executei o comando:

sass --watch mdb.scss:./css/mdb.css

porem retorna o erro:

D:\Denis\teste-font\node_modules\mdbreact\dist\scss>sass --watch mdb.scss:./css/mdb.css
>>> Sass is watching for changes. Press Ctrl-C to stop.
>>> Change detected to: _custom.scss
      error core/_mixins.scss (Line 215: Functions may not be defined within control directives or other mixins.)

tentei tbm assim:

sass --watch mdb.scss:css/mdb.css

Porem da o mesmo erro.

Segue arquivo que ele aponta como erro:


// Make badge linha 212
@mixin make-badge($name, $color) {     //linha 213
  .badge-#{$name} {           //linha 214
    @function set-notification-text-color($color) {    //linha 215
      @if (lightness($color) > 70) {            //linha 216
        @return $black; // Lighter backgorund, return dark color
      } @else {
        @return $white; // Darker background, return light color
      }
    }
    background-color: $color !important;
    color: set-notification-text-color($color) !important;
  }
}

Alguém tem alguma ideia ?

2 respostas

Refiz de outro jeito e mesmo assim continua com esse erro:

1-Desinstalei o ruby e instalei via npm com "npm install node-sass"

2- Entrei na pasta "node-sass" no arquivo "node-sass/package.json"

3- dentro desse arquivo coloquei em "Script" a seguinte linha:

 "scss":"node-sass -w D:/Denis/teste-font/node_modules/mdbreact/dist/scss/mdb.scss -o D:/Denis/teste-font/node_modules/mdbreact/dist/scss/css/mdb.css"

Ficando assim:

"scripts": {
    "build": "node scripts/build.js --force",
    "coverage": "node scripts/coverage.js",
    "install": "node scripts/install.js",
    "lint": "eslint bin/node-sass lib scripts test",
    "postinstall": "node scripts/build.js",
    "prepublish": "not-in-install && node scripts/prepublish.js || in-install",
    "test": "mocha test/{*,**/**}.js",
    "scss":"node-sass -w D:/Denis/teste-font/node_modules/mdbreact/dist/scss/mdb.scss -o D:/Denis/teste-font/node_modules/mdbreact/dist/scss/css/mdb.css"
  },
  "version": "4.8.3"
}

Pelo "CMD" dei o comando "npm run scss" e mesmo assim retorna o erro:

{
  "status": 1,
  "file": "D:/Denis/teste-font/node_modules/mdbreact/dist/scss/core/_mixins.scss",
  "line": 215,
  "column": 15,
  "message": "Functions may not be defined within control directives or other mixins.",
  "formatted": "Error: Functions may not be defined within control directives or other mixins.\n        on line 215 of ../mdbreact/dist/scss/core/_mixins.scss\n>>     @function set-notification-text-color($color) {\n\n   --------------^\n"
}
solução!

Oi Denis, tudo bem?

Nao consegui achar o erro mesmo colocando sua funcao em um SassMeister.

Pelo que o erro diz nao podemos definir funcoes dentro de outros mixins. Ou seja, nao da pra criar uma funcao e invoca-la tudo isso dentro de um mixin.

Tentaria colocar a funcao a parte e deixar o mixin apenas para chama-la.

Espero ter ajudado,

Abcs!

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