изменение версии node-sass, чтобы сборка grunt завершалась нормально

#node.js #gruntjs #npm-install #node-sass

Вопрос:

Недавно я взял на себя управление веб-сайтом drupal 8, в то время как наша организация ищет постоянного веб-разработчика (т. Е. Это не та задача, которую я обычно выполняю). В настоящее время я пытаюсь внести некоторые изменения в стиль сайта, что требует перестройки нашей темы drupal с использованием grunt, npm и т. Д. Первоначально у меня были проблемы npm install с достижением успеха, но я обнаружил, что переключение на более старую версию node/npm (v8.17.0) помогло. Однако это вызвало новую проблему. Когда я выдаю grunt build , я вижу эту ошибку:

 > grunt build
Loading "Gruntfile.js" tasks...ERROR
>> Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (57)
>> For more information on which environments are supported please see:
>> https://github.com/sass/node-sass/releases/tag/v3.13.1
Warning: Task "build" not found. Use --force to continue.

Aborted due to warnings.
 

Для записи повторный запуск с --force помощью не помогает; процесс завершается, но без сборки.

Я заметил, что более новая версия node-sass, похоже, поддерживает версию node, которую я запускаю в своей операционной системе (Mac OS 11.5): https://github.com/sass/node-sass/releases/tag/v4.14.1. Но моя проблема (я думаю) в том, что я не уверен, как указать, что я хочу использовать эту версию.

Тема package.json выглядит так:

 {
  "name": "[obscured]",
  "version": "1.0.0",
  "dependencies": {},
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-jshint": "~1.0.0",
    "grunt-contrib-uglify": "~2.0.0",
    "grunt-contrib-uglify-es": "github:gruntjs/grunt-contrib-uglify#harmony",
    "grunt-contrib-watch": "~1.0.0",
    "grunt-sass": "^1.0.0",
    "grunt-sass-globbing": "^1.3.0",
    "md5": "^2.0.0"
  },
  "engines": {
    "node": ">=0.8.0"
  },
  "scripts": {
    "postinstall": "find node_modules/ -name '*.info' -type f -delete"
  }
}
 

Я недостаточно знаком с этим материалом, чтобы знать, почему node-sass здесь используется версия v3.13.1. На мой взгляд, это выглядит так, как будто package.json требуется версия >= 1.0.0, но здесь мое незнание, безусловно, сдерживает меня; должно быть, происходит что-то еще.

Если бы кто-нибудь мог помочь мне либо принудительно обновить версию до node-sass версии 4.14.1, либо предложить другой способ устранения ошибки во время выполнения, с которой я сталкиваюсь, grunt build я был бы очень признателен.

Ответ №1:

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

Следуя этим указаниям, я node-sass v3.13.1 npm uninstall node-sass размонтировал с. Затем я установил node-sass v.4.14.1 через npm install node-sass@4.12 .

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

Гав. Это был действительно медведь. В конце концов, это было простое решение. Проблема для меня заключалась в том, чтобы попытаться понять, как подходят все эти биты программного обеспечения и где они хранят/извлекают данные. Кажется невероятно сложным способом справиться с некоторыми не очень сложными задачами. Но я знаю, что я здесь просто турист; я уверен, что есть веские причины для введения этой сложности.