Симптомы:
Некоторые команды очистки не выполняются; Некоторые страницы Drupal пусты.
О неудачных командах drush сообщают «Ошибка сегментации: 11»
Журнал Apache (например, php-error.log в MAMP) также показывает ту же ошибку.
Задний план:
Если вы используете рабочий процесс gulp или grunt - для компиляции SASS вашей темы и т. Д. - вы можете столкнуться с проблемой, когда команды drush выдают ошибку сегментации 11, как это делает Apache, когда страницы Drupal обрабатываются как пробелы (WSD).
Вероятная причина
Это связано с тем, что файлы из вашей среды grunt
или gulp
среды рабочего процесса node_modules
ошибочно регистрируются, например, самим Drupal как побочный продукт drush cache-clear all
. Существуют десятки этих файлов .js, и Drupal не может с ними справиться ... возможно, это регулярное выражение PCRE, которое является основной причиной, как это известно в других местах. Так или иначе ...
Это не всегда происходит
Непонятно, могут ли некоторые модули (например, Browser Sync) вызывать эту ошибку, поскольку рабочий процесс в стиле node.js (т.е. gulp или grunt) может отлично работать до сбоя таким образом.
drush cc all
), что добавило путаницы.Ответы:
Вот решение, которое вы ищете. Гораздо элегантнее и меньше работы:
Просто небольшое изменение в ответе @ iamcarico выше.
примечание: вам может понадобиться .npmrc со следующим содержимым:
источник
Итак, у меня есть немного более элегантное решение, которое просто удалит файлы .info после установки npm. Ничего не нужно, так что это должно быть безопасно.
Добавьте следующее в конец вашего package.json:
источник
Это работает для меня:
(Большое спасибо @jorgegc за определение причины в этой теме. Думаю, тема заслуживает более общего названия.)
gulpfile.js
иpackage.json
в новый «скрытый» каталог.npm
cd .npm
иnpm install
(после удаленияnode_modules
каталога корневого уровня темы, конечно)gulpfile.js
базовый каталог для исходного и конечного файлов paths.eg В приведенном ниже фрагменте "../" были добавлены путиgulp
команду из.npm
каталогаПример структуры каталогов для темы ihit
. ├── .editorconfig ├── .git │ ├── HEAD │ ├── ... ├── .gitignore ├── .jshintrc ├── .npm │ ├── gulpfile.js │ ├── node_modules │ └── package.json ├── assets │ ├── images │ ├── js │ └── sass ├── css │ ├── ihit.hacks.css │ └── ihit.styles.css ├── ihit.info ├── ihit.sublime-project ├── ihit.sublime-workspace ├── images │ ├── logo.png │ ├── search-icon.png │ └── sprite.png ├── js │ └── ihit.behaviors.js ├── php │ ├── ihit_breadcrumb.inc │ ├── ihit_form_search_form_alter.inc │ ├── ihit_menu_link.inc │ ├── ihit_menu_tree.inc │ ├── ihit_preprocess_html.inc │ ├── ihit_preprocess_region.inc │ └── ihit_process_page.inc ├── research │ └── Refills ├── screenshot.png ├── template.php └── templates ├── html.tpl.php ├── node--image_gallery.tpl.php ├── node.tpl.php └── page.tpl.php
Глава gulpfile.js
// project-specific var project = { path: { sass: { source: '../assets/sass/**/*.scss', css_dest: '../css' }, // sass . . .
источник
Вы можете избежать всего этого, установив инструменты вашего рабочего процесса в корне сайта Drupal. Он не будет сканировать
node_modules
папку верхнего уровня .Установка на корневом уровне также имеет и другие преимущества, например, позволяет вам равномерно закреплять весь проект (ваши пользовательские модули, компоненты и темы могут использовать эту конфигурацию корневого уровня). При условии, что вы объединяетесь
sites/all/modules
в подкаталогиcontrib
иcustom
подкаталоги, вы можете легко игнорировать папки contrib и других поставщиков.источник
Это все еще кажется проблемой, и я также получил следующую ошибку:
Segmentation fault: 11
после запускаnpm install
.Я использую
gulp
версию3.8.11
иnode
с версией0.12
.Я обычно (в этом случае тоже) использую в
aurora
качестве базовой темы и использую собственнуюpackage.json
иgulp.js
файловую. Мойpackage.json
файл содержит скрипт postinstall от iamcarrico :Хм, в этот момент я только что узнал, что скрипт postinstall немного отличается, что могло вызвать мою ошибку ошибки сегментации. Так или иначе.
То, что я сделал, я удалил
node_modules
каталог в моей темеrm -rf ./node_modules
. Очистил кеш с помощью drushdrush cc all
. Затем я следовал приведенным выше инструкциям Иайн ... пока нет. 3 (3 не входит в комплект ), побежалfind node_modules -type f -name '*.info' | xargs rm;
внутри.npm
папки и переместилgulp.js
,package.json
аnode_modules
папка один уровень вверх в исходную папку темы. Я мог работатьgulp
без ошибок сегментации и дажеbrowsersync
работал как ожидалось.источник
Вот проблема на drupal.org, которая решает эту проблему, включая патч https://www.drupal.org/node/2329453
источник
В прошлом я решил переместить содержимое узла в скрытую папку, например, «.npm».
источник