Node-sass binding.node файл не найден - PullRequest
0 голосов
/ 21 января 2020

У меня есть angular проект 7.1, который до этого работал нормально, но после обновления до Ubuntu 19.10 при установке npm я получаю следующую ошибку:

> node-sass@4.11.0 install /home/gabb/dev/homepage/node_modules/node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.11.0/linux-x64-79_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.11.0/linux-x64-79_binding.node": 

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g. 

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080
node[1617]: ../src/signal_wrap.cc:159:void node::DecreaseSignalHandlerCount(int): Assertion `(new_handler_count) >= (0)' failed.
 1: 0x9f0390 node::Abort() [node]
 2: 0x9f0417  [node]
 3: 0xa91bdc node::DecreaseSignalHandlerCount(int) [node]
 4: 0xa91cb4  [node]
 5: 0x98fbd5 node::Environment::CleanupHandles() [node]
 6: 0x98fe6b node::Environment::RunCleanup() [node]
 7: 0xa2d2f0 node::NodeMainInstance::Run() [node]
 8: 0x9c1311 node::Start(int, char**) [node]
 9: 0x7fbff275e1e3 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
10: 0x95ed25  [node]
Aborted (core dumped)

Эта ссылка https://github.com/sass/node-sass/releases/download/v4.11.0/linux-x64-79_binding.node действительно возвращает 404. Если я go в пакете. json файл, то нет записи node-sass. Любой может объяснить, почему он пытается установить node-sass@4.11.0, если его нет в пакете. json. Это зависимость angular? Если да, мне нужно обновить angular до новой версии, чтобы получить последнюю версию node-sass?

Это кажется немного сложным для простого обновления до последней версии Ubuntu, тем более что трудно обновить angular до другой версии.

пакет. json: https://pastebin.com/w51Kna2g

Чтобы уточнить, я хотел бы получить объяснение по этому поводу не только некоторые команды, которые "исправляют" это.

Редактировать: Кажется, это зависимость @ angular -devkit / build- angular, где у меня версия 0.13.6

Когда я обновляю это до последней версии я получаю другие ошибки.

Ответы [ 2 ]

0 голосов
/ 21 января 2020

В ответ на ваш ответ:

Итак, ответ таков: моя версия angular -devkit / build- angular зависит от node-sass v4.11.0, но node-sass v4. 11.0 не поддерживает мою linux версию

Было бы правильнее сказать, что для вашей указанной платформы c нет предварительно скомпилированного двоичного файла. Во время пост-установки он пытается найти тот, который не существует, что приводит к ошибке. Что вы можете сделать, так это попробовать самим собрать его из исходного кода.

В узле sass README есть раздел, в котором говорится о создании двоичного файла самостоятельно, выполнив следующие действия:

Check out the project:

git clone --recursive https://github.com/sass/node-sass.git
cd node-sass
npm install
node scripts/build -f  # use -d switch for debug release
# if succeeded, it will generate and move
# the binary in vendor directory.

Когда у вас есть двоичный файл, есть некоторые переменные env , которые вы можете использовать для ссылки на него.

Я натолкнулся на этот раздел README на прошлой неделе, пытаясь создать проект на работе. Я не смог получить двоичный файл node-sass, но моя проблема была больше связана с работой за корпоративным прокси. Я закончил тем, что скачал двоичный файл узла (вместо того, чтобы создать его сам) и просто скопировал папку vendor в node_modules / node-sass проекта (я знаю, не супер идеал).

0 голосов
/ 21 января 2020

Таким образом, ответ таков: моя версия angular -devkit / build- angular зависит от node-sass v4.11.0, но node-sass v4.11.0 не поддерживает мою версию NodeJS. Поэтому я должен обновить angular -devkit до версии, в которой есть узел sass 4.13.0.

Который, по-видимому, ни один из них, 0.13.9 - последний, поддерживающий angular 7, и он имеет 4.12 .0 как версия node-sass.

Что означает, что для написания кода в Ubuntu 19.10 мне понадобится angular 8+? Что невозможно для меня, так как некоторые пакеты, которые я использую, не поддерживают это. Весь этот проект был построен в 2019 году, и это уже пита для обновления. Должен использовать docker для эмуляции Ubuntu 19.04, чтобы иметь возможность кодировать angular 7.

...