vscode react jshintrc es6 javascript frontend webstorm ecmascript-6 babeljs

javascript - react - Webstorm ES6 con nombre de importación que no puede resolver error de símbolo



jshint react (2)

Tengo un error en Webstorm cuando uso la declaración de importación denominada ES6:

import { nodes } from ''utils/dom'';

Recibo el error "no se puede resolver el símbolo" en "nodos"

También cuando trato de exportar como nombre exportar así:

export { write: document.write.bind(document), node: document.querySelector.bind(document), nodes: document.querySelectorAll.bind(document) };

También me dan errores. Uso eslint con el analizador babel-eslint. La cosa es que esto funciona en Sublime Text 3 como un encanto, pero por alguna razón falla la comprobación de errores en Webstorm.

Supongo que esto se debe a que, excepto Esstint webstorm, está haciendo otra comprobación de código.

¿Alguna idea de cómo puedo suprimir eso y usar solo eslint con el analizador babel-eslint?

Cualquier consejo será apreciado


Recibo el error "no se puede resolver el símbolo" en "nodos"

es porque utils/dom en el código estándar de nodo significa "encontrar dom.js dentro de un módulo llamado ''utils''. Usted ha anulado este comportamiento usando la propiedad moduleDirectories de moduleDirectories , pero WebStorm no sabe qué es eso. Para que WebStorm resuelva los utils/dom correctamente utils/dom , deberá agregar la carpeta utils como una biblioteca en la configuración del proyecto de su tormenta web.

Su sintaxis de export es incorrecta. La sintaxis de importación / exportación de ES6 es 100% no relacionada con los objetos, y en su ejemplo de exportación, está usando la sintaxis de objetos. import { nodes } está solicitando una exportación llamada nodes . Hay varias formas de escribir las exportaciones que tiene:

export const write = document.write.bind(document); export const node = document.querySelector.bind(document); export const nodes = document.querySelectorAll.bind(document);

o alternativamente, podría colapsarlos si desea multilínea var/let/const

export const write = document.write.bind(document), node = document.querySelector.bind(document), nodes = document.querySelectorAll.bind(document);

o incluso

const write = document.write.bind(document); const node = document.querySelector.bind(document); const nodes = document.querySelectorAll.bind(document); export {write, node, nodes};


Es difícil decir si esto está directamente relacionado, pero para que Webstorm sepa cómo resolver sus importaciones, también puede ir a Preferences > Directories y configurar carpetas como Resource Root (o haga clic con el botón derecho / contextual en una carpeta y configurarlo de esa manera)

Es posible que esto deba hacerse, por ejemplo, cuando ha configurado Webpack para resolver ciertos subdirectorios, donde la estructura de su proyecto puede ser:

/ /docs /src /containers /app App.js /components /header Header.js

En cuyo caso, Webstorm esperaría que una importación en App.js pareciera a la siguiente:

import Header from ''../../../components/header/Header''

Mientras que con Webpack, si ha agregado src como un módulo para resolver, puede hacer lo siguiente, que Webstorm no entiende actualmente, por lo tanto, agregarlo como una raíz de recursos resuelve el problema

import Header from ''components/header/Header''

Referencia: alias de ruta para importaciones en Webstorm