Почему моя Sass Command работает из командной строки, а не мой накопительный плагин? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть следующая команда sass ...

sass /.../web/ui/src/components/viewport/index.style.scss --load-path=/.../web/ui/node_modules

Который компилируется ...

@use "@material/top-app-bar/variables" as top-bar;
:host{
    ...
    height: calc( 100% - #{top-bar.$row-height} );
    ...
}

Это работает нормально, и я вижу вывод в stdout

:host {
  ...
  height: calc( 100% - 64px );
  ...
}

Теперь я пытаюсь запустить его через execSyn c, используя узел в моем модуле накопительного пакета ...

load(id) {
  if(!id.endsWith('.scss')|| !id.endsWith('.sass')) return null;
  const a = execSync(`sass ${id} --load-path=${loadPath}`);
  return {
    code: `export default \`${a.toString('utf8')}\``
  }
},

Кажется, что он выполняет ту же команду в соответствии с журналом консоли (я использую абсолютный пути, поэтому местоположение не должно иметь значения). Однако, это бросает ...

Error: Could not load /.../web/ui/src/components/viewport/index.style.scss (imported by /.../web/ui/src/components/viewport/index.mjs): Command failed: sass /.../web/ui/src/components/viewport/index.style.scss --load-path=/.../web/ui/node_modules
Error: Expected digit.
    height: calc( 100% - #{top-bar.$row-height} );

Почему это происходит и как мне заставить это работать? Полный проект доступен здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...