Компиляция node-sass занимает 10 минут

У нас есть много небольших веб-сайтов. Обычно мы размещаем их на серверах Digital Ocean за 5–10 долларов.

Частью нашего развертывания является компиляция Sass в CSS с использованием node-sass.

На нашем последнем сервере мы наблюдаем значительное увеличение времени компиляции библиотеки node-sass (а не самих файлов scss). Речь идет о 8-10 минутах, тогда как в других проектах требуется 30-100 секунд.

Мы используем node 8.11.1 (новейший LTS) и yarn 1.6.0 (новейший) с node-sass 4.8.3 (новейший) в Ubuntu 16.04.4.

Есть ли способ кэшировать компиляцию между развертываниями? Или кто-нибудь знает, почему на компиляцию node-sass уходит так много времени?

Как запускается компиляция? Кешируются ли node_modules или должны устанавливаться каждый раз?

muecas 20.04.2018 13:33

Это запускается установкой пряжи - да, node_modules устанавливаются заново при каждом развертывании.

jakub_jo 20.04.2018 13:54

Почему не yarn install —production, чтобы вам не приходилось каждый раз устанавливать зависимости? Как команда запускается? У вас есть набор для развертывания или это вручную?

muecas 20.04.2018 14:09

На самом деле он действительно запускается с помощью флага производства. У нас есть сценарий развертывания: создать папку, извлечь из git, установить зависимости, запустить сценарии сборки, переключить папки - выпущено.

jakub_jo 20.04.2018 15:04

Возможно, вы могли бы создать какой-нибудь подробный вывод журнала, чтобы вы могли посмотреть, какой процесс занимает так много времени. Я столкнулся с установками npm с виртуальным хостом, который требовал слишком много для установки. Я решил, что установил все пакеты узлов как root, поэтому пользователь виртуального хоста использовал только желаемый метод и никогда не должен был устанавливать пакеты узлов.

muecas 20.04.2018 15:06

Компиляция node-sass занимает так много времени, в пряже указано: node-sass: g ++ '-DNODE_GYP_MODULE_NAME = libsass' '-DUSING_UV_SHARED = 1' '-DUSING_V8_SHARED = 1' '-DV8_DEPRECATION_WARNINGS_LARNINGS = 1' '-DEFI и so на

jakub_jo 20.04.2018 15:20

Есть ли импорт с использованием url в ваших файлах sass?

muecas 20.04.2018 15:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
11
7
3 450
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если вы используете поддерживаемую комбинацию ОС и узла (см. Страницу выпуска в GH для вашей версии node-sass), предварительно созданный двоичный файл должен быть загружен для вас.

Ответ принят как подходящий

Если кто-то найдет это через поисковик:

Мы не нашли решения проблемы. Мы увеличили и уменьшили размер капли до исходного размера, и проблема исчезла.

npm install

yarn имеет некоторые проблемы с кешированием (может быть на вашем ПК или в CDN). Это может привести к значительному увеличению времени, если на вашем ПК есть несколько версий узлов (например, nvm). В моем случае установка зависимостей с npm сработала: 40 секунд, по сравнению с 5+ минутами с пряжей (я не ждал до конца)

Другие вопросы по теме