Размер node-sass после обновления до Node 11.1 с помощью инструментов сборки в Windows

изначально я использовал Node v10 (я полагаю), и при создании нового углового проекта (v7) мои node_modules были «скромными» ~ 140 МБ.

Затем я решил перейти на Node v11.1 и установить инструменты сборки, которые установщик теперь позволяет вам установить. Мой размер node_modules превысил 700 МБ. Виновником является пакет node-sass, который теперь загружает весь проект (файлы cpp, .sln и все такое) и полностью компилируется при начальной установке npm (используя node-gyp).

Есть ли способ изменить это поведение на то, как оно работало без установленных инструментов сборки? (за исключением ручного удаления конвейера сборки, который автоматически устанавливается узлом)

Или есть какие-то плюсы, которых я не вижу? Для меня все это работало просто отлично (включая все, что связано с scss и sass) без огромного увеличения занимаемого пространства.


person Jejuni    schedule 15.11.2018    source источник
comment
Вы можете отправить собранный двоичный файл обратно в node-sass или подождать, пока они его обновят. Я думаю, что это пройдет само по себе, как только это произойдет.   -  person Dominic    schedule 16.11.2018


Ответы (1)


Итак, я узнал, что происходит.

Текущая версия angular (версия cli 7.0.6) устанавливает node-sass версии 4.9.3. Версия 4.9.3 не поддерживает узел v11. Поддержка узла v11 была добавлена ​​в 4.10.0. Таким образом, скрипт установки, который запускает node-sass, не может найти предварительно собранный двоичный файл для загрузки с github и возвращается к сборке исходных файлов (что приводит к потере 400 МБ места).

Вот почему проблема начала возникать после того, как я обновился до последней версии узла.

Пока есть 2 решения:

  • Придерживайтесь LTS v10 узла (для которого есть готовый бинарный файл)
  • Вручную обновитесь до последней версии node-sass и надейтесь, что angular не сломается из-за этого

Я выбрал вариант 1 и установил версию узла LTS. Это проблема, которая, вероятно, со временем исправится, поскольку angular обновит свою зависимость node-sass. В настоящее время я надеюсь, что ответ поможет кому-то, кто столкнулся с такой же ситуацией.

person Jejuni    schedule 16.11.2018