Изображение Docker с процессором node-sass на руке - PullRequest
0 голосов
/ 15 ноября 2018

Я строю свой CI на gitlab, и одно из заданий, которые мне нужно выполнить, - это скомпилировать таблицы стилей sass.

Для компиляции sass я использую node-sass, который при установке должен бытьсоставлено из источника.

Чтобы НЕ компилировать каждый раз, когда node-sass из источника, я создал образ докера с:

  • node и npm
  • node-sass, установленными глобально (npm install --unsafe-perm -g node-sass)

В package.json моего проекта я сохранил devDependencies sas-sass с той же версией, которая установлена ​​в образе докера, описанном выше.

Моя проблемачто когда я выполняю npm install (прямо перед компиляцией моего scss), npm пытается снова установить node-sass и проходит всю компиляцию из исходного процесса.

Как этого избежать?

Одним из решений, которое я подумал, является удаление node-sass из devDependencies и просто добавление их в качестве необязательных зависимостей или что-то в этом роде, но мне не нравится это грязное решение.

Кто-нибудь вообще знает, почему npm все равно пытается установить node-sass, хотя версия, запрошенная package.json, установлена ​​глобально?

1 Ответ

0 голосов
/ 05 декабря 2018

Я решил добавить node-sass в package.json в качестве необязательной зависимости, например так:

"optionalDependencies": {
    "node-sass": "4.10.0"
},

и теперь, когда мне нужно пропустить установку, потому что я знаю, что установлена ​​глобальная версия, япросто сделайте:

npm install --no-optional

Это своего рода работа вокруг гайки, она прекрасно работает.

...