Cómo configurar el proyecto WebStorm / PhpStorm para que la inteligencia de código JS funcione bien para Node.js proyectos?
En WebStorm / PhpStorm / IDEA, hay una gran cantidad de funciones de inteligencia de código para JavaScript incorporadas. Sin embargo, al desarrollar un Nodo.la aplicación js, incluyendo todo desde node_modules
complica las cosas con cosas como "Navegar a archivo" (no quiero que el IDE me ofrezca decenas de package.json
s desde la carpeta node_modules
, por ejemplo). Pero excluir la carpeta node_modules
por completo tiene sus propios problemas - no hay finalización de código, etc.
Entonces, ¿cuál es la forma "correcta" de abordar esto en WebStorm? ¿Debo incluir solo algunos de los archivos de node_modules
? O excluir todo de allí y de alguna manera utilizar el concepto de proyecto o bibliotecas globales?
Gracias.
4 answers
Para hacer esto en la interfaz de usuario (probado desde PyCharm 2.7.3, resultado mostrado en PhpStorm 6.0.3):
Añadir bibliotecas JavaScript
Archivo → Configuración
(Configuración del proyecto) → JavaScript → Bibliotecas
[Add...] →
Nombre: node_modules
Visiblilty: [x] proyecto Actual
[Conectar...]
{seleccione la carpeta del proyecto node_modules}
{repeat for bower }
Excluir carpeta de Proyecto
(Configuración del Proyecto) → Estructura del Proyecto
Haga clic derecho en la carpeta → [Excluido]
Para hacer esto desde el proyecto .archivo iml:
Cambiando el .iml
del proyecto a lo siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/bower_components" />
<excludeFolder url="file://$MODULE_DIR$/node_modules" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="node_modules" level="application" />
<orderEntry type="library" name="bower_components" level="application" />
</component>
</module>
Hizo que el editor excluyera node_modules y bower_components, pero los pusiera a disposición para completarlos y buscarlos en la biblioteca
Probado en PyCharm, IntelliJ y WebStorm.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-22 15:41:55
Esto se ha solucionado en WebStorm 7, ver http://youtrack.jetbrains.com/issue/WEB-1927 .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-05 21:13:57
Desafortunadamente no hay una manera "correcta" fácil. Puede excluir todos los directorios node_modules que se encuentran dentro del directorio node_modules de nivel superior.
Hará que la terminación sea mejor, pero no ideal.
Más discusión está aquí: http://devnet.jetbrains.net/message/5468926 .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-04 13:51:10
Puede descargar un plugin para Node.integración js: http://plugins.intellij.net/plugin/?webide&pluginId=6098
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-29 14:17:57