#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. Было несколько предупреждений, но я думаю, что все закончилось нормально.
Гав. Это был действительно медведь. В конце концов, это было простое решение. Проблема для меня заключалась в том, чтобы попытаться понять, как подходят все эти биты программного обеспечения и где они хранят/извлекают данные. Кажется невероятно сложным способом справиться с некоторыми не очень сложными задачами. Но я знаю, что я здесь просто турист; я уверен, что есть веские причины для введения этой сложности.