Symptômes:
Certaines commandes drush échouent; Certaines pages Drupal sont vierges.
Les commandes drush défaillantes signalent "Erreur de segmentation: 11"
Le journal Apache (par exemple, php-error.log dans MAMP) indique également la même erreur.
Contexte:
Si vous utilisez un flux de travail gulp ou grunt - pour compiler le SASS de votre thème, etc. - vous risquez de rencontrer un problème où les commandes drush génèrent une erreur de segmentation 11, tout comme Apache, tout en servant les pages Drupal en tant que blancs (WSD).
Cause probable
Cela est dû au fait que les fichiers de votre environnement de flux de travail grunt
ou sont en cours d’enregistrement par Drupal lui-même comme un bi-produit, par exemple. Il existe des dizaines de ces fichiers .js et Drupal ne peut pas les gérer. C’est peut-être une regex PCRE qui en est la cause, comme cela est connu ailleurs. En tous cas ...gulp
node_modules
drush cache-clear all
Ça n'arrive pas toujours
Il n'est pas clair si certains modules (tels que Browser Sync par exemple) induisent cette erreur en tant que workflow de style node.js (c'est-à-dire gulp ou grunt) peuvent parfaitement fonctionner avant d'échouer de cette manière.
drush cc all
), ajoutant à la confusion.Réponses:
Voici la solution que vous recherchez. Beaucoup plus élégant et moins de travail:
Juste une légère modification de la réponse de @ iamcarico ci-dessus.
remarque: vous aurez peut-être besoin d'un fichier .npmrc contenant uniquement le contenu suivant:
la source
J'ai donc une solution légèrement plus élégante, qui supprime simplement les fichiers .info après l'installation de npm. Aucun n'est nécessaire, cela devrait donc être sûr.
Ajoutez ce qui suit à la fin de votre package.json:
la source
Cela fonctionne pour moi:
(Merci beaucoup à @jorgegc d’avoir identifié la cause dans ce fil. J’ai pensé que le sujet méritait un titre plus général ici.)
gulpfile.js
etpackage.json
dans le nouveau répertoire "caché".npm
cd .npm
etnpm install
(après avoir supprimé lenode_modules
répertoire racine du thème bien sûr)gulpfile.js
le répertoire de base pour les fichiers source et destination paths.eg Dans l'extrait ci-dessous, "../" était ajouté au début des cheminsgulp
commande depuis le.npm
répertoireExemple de structure de répertoire pour le thème 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
Chef de gulpfile.js
// project-specific var project = { path: { sass: { source: '../assets/sass/**/*.scss', css_dest: '../css' }, // sass . . .
la source
Vous pouvez éviter tout cela en installant vos outils de flux de travail à la racine du site Drupal. Il n'analysera pas un
node_modules
dossier de niveau supérieur .L'installation au niveau racine présente également d'autres avantages, comme de vous permettre de lier de manière uniforme tout votre projet (vos modules, fonctions et thèmes personnalisés peuvent partager cette configuration au niveau racine). Si vous regroupez des
sites/all/modules
souscontrib
-custom
répertoires et des sous - répertoires, vous pouvez facilement ignorer les dossiers contrib et autres fournisseurs.la source
Cela semble toujours être un problème et j'ai également eu l'erreur suivante:
Segmentation fault: 11
après avoir exécuténpm install
.J'utilise la
gulp
version3.8.11
etnode
avec la version0.12
.Dans ce cas aussi, j’utilise habituellement
aurora
comme thème de base un fichierpackage.json
et son propregulp.js
fichier. Monpackage.json
fichier contient le script postinstall d' iamcarrico:Hmm, à ce stade, je viens de reconnaître que le script postinstall est légèrement différent, ce qui est peut-être à l'origine de l'erreur de segmentation. En tous cas.
Ce que j'ai fait, c'est que j'ai supprimé le
node_modules
répertoire de mon thème avecrm -rf ./node_modules
. Effacé la cache avec drushdrush cc all
. Puis j'ai suivi les instructions ci-dessus de iainh ... jusqu'à ce que non. 3 (3 non inclus), a courufind node_modules -type f -name '*.info' | xargs rm;
à l'intérieur du.npm
dossier et a déplacé legulp.js
,package.json
et lenode_modules
dossier d'un niveau jusqu'au dossier du thème d'origine. Je pouvais courirgulp
sans erreurs de segmentation et mêmebrowsersync
travaillé comme prévu.la source
Voici le problème sur drupal.org qui traite de ce problème, y compris le correctif https://www.drupal.org/node/2329453.
la source
Ma solution était autrefois de déplacer le contenu du nœud à l’intérieur d’un dossier caché tel que ".npm", par exemple.
la source