Síntomas
Algunos comandos drush fallan; Algunas páginas de Drupal están en blanco.
Los comandos drush fallidos informan "Error de segmentación: 11"
El registro de Apache (por ejemplo, php-error.log en MAMP) también muestra el mismo error.
Fondo:
Si usa un flujo de trabajo de trago o gruñido, para compilar el SASS de su tema, etc., puede encontrarse con un problema en el que los comandos drush arrojan un error de segmentación 11 al igual que Apache mientras sirve las páginas de Drupal como espacios en blanco (WSD).
Causa probable
Esto se debe a que los archivos de su grunt
o de gulp
flujo de trabajo en el entorno node_modules
erróneamente están siendo registrados por sí Drupal como un subproducto de drush cache-clear all
por ejemplo. Hay docenas de estos archivos .js y Drupal no puede manejarlos ... posiblemente es una expresión regular de PCRE que es la causa principal, ya que esto se conoce en otros lugares. De todas formas ...
No siempre sucede
No está claro si algunos módulos (como la Sincronización del navegador, por ejemplo) inducen este error ya que un flujo de trabajo de estilo node.js (es decir, tragar o gruñir) puede funcionar perfectamente antes de fallar de esta manera.
drush cc all
), lo que aumenta la confusión.Respuestas:
Aquí está la solución que estás buscando. Mucho más elegante y menos trabajo:
Solo una ligera alteración en la respuesta de @ iamcarico anterior.
nota: es posible que necesite un .npmrc con solo el siguiente contenido:
fuente
Entonces, tengo una solución un poco más elegante, que simplemente eliminará los archivos .info después de la instalación de npm. No se necesita ninguno, así que esto debería ser seguro.
Agregue lo siguiente al final de su package.json:
fuente
Esto funciona para mi:
(Con muchas gracias a @jorgegc por identificar la causa en este hilo, ¿pensé que el tema merecía un título más general aquí?)
gulpfile.js
ypackage.json
al nuevo directorio "oculto".npm
cd .npm
ynpm install
(después de haber eliminado elnode_modules
directorio del nivel raíz del tema, por supuesto)gulpfile.js
directorio base para las rutas de los archivos de origen y destino. Por ejemplo, en el fragmento "../" se anteponen a las rutasgulp
comando desde el.npm
directorioEjemplo de estructura de directorios para el tema 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
Jefe de gulpfile.js
// project-specific var project = { path: { sass: { source: '../assets/sass/**/*.scss', css_dest: '../css' }, // sass . . .
fuente
Puede evitar todo esto instalando sus herramientas de flujo de trabajo en la raíz del sitio Drupal. No escaneará una
node_modules
carpeta de nivel superior .La instalación en el nivel raíz también tiene otros beneficios, como permitirle alinear todo su proyecto de manera uniforme (sus módulos, características y temas personalizados pueden compartir esta configuración de nivel raíz). Que ya ha proporcionado grupo
sites/all/modules
encontrib
ycustom
subdirectorios, puede ignorar fácilmente contrib y otras carpetas de proveedores.fuente
Todavía parece ser un problema y también recibí el siguiente error:
Segmentation fault: 11
después de ejecutarnpm install
.Yo uso la
gulp
versión3.8.11
ynode
con la versión0.12
.Por lo general (en este caso) el uso
aurora
como tema de base y uso una propiapackage.json
ygulp.js
archivo. Mipackage.json
archivo contiene el script postinstall de iamcarrico :Hmm, en este punto, acabo de reconocer que el script posterior a la instalación es ligeramente diferente, lo que podría haber causado mi error de falla de segmentación. De todas formas.
Lo que hice fue eliminar el
node_modules
directorio dentro de mi tema conrm -rf ./node_modules
. Despejó el caché con drushdrush cc all
. Luego seguí las instrucciones anteriores de iainh ... hasta que no. 3 (3 no incluidos), se ejecutófind node_modules -type f -name '*.info' | xargs rm;
dentro de la.npm
carpeta y movió elgulp.js
,package.json
y lanode_modules
carpeta un nivel hasta la carpeta del tema original. Podría ejecutargulp
sin errores de segmentación e inclusobrowsersync
funcionó como se esperaba.fuente
Aquí está el problema en drupal.org que aborda este problema, incluido el parche https://www.drupal.org/node/2329453
fuente
mi solución fue en el pasado mover las cosas del nodo dentro de una carpeta oculta como ".npm" por ejemplo.
fuente