javascript - importar - Exportar clase es6 en Babel-No se puede encontrar el módulo
import javascript (1)
He visto estas dos respuestas en SO:
Exportar una clase con ES6 (Babel)
Intentando exportar una clase como módulo ES6 babel
No estoy usando Browserify, solo Gulp and Node, solo quería prefacio.
Estructura de archivo / carpeta:
./
./gulpfile.js
./_TRAGO
./_GULP/main_config.es6
./_GULP/_classes/Gcfg.es6
Configuración de pregunta
Estoy exportando un archivo de clase Gcfg.es6
, así:
export default class Gcfg {
constructor() {
this.rootDir = ''./'';
this.latestDir = ''./_LATEST/'';
this.srcFolder = ''./_SRC/'';
...
}
getSrcDir(dir="") {
return this.srcFolder + dir;
}
...
}
En main_config.es6
estoy intentando importar:
import Gcfg from ''_classes/Gcfg'';
Después de esta publicación de GitHub:
https://github.com/babel/babel/issues/849
Supuse que estaba haciendo todo correctamente. Estoy usando WebStorm y tengo una configuración de "File Watcher" para ejecutar Babel al guardar un archivo .es6. No estoy haciendo ningún lujo, las únicas banderas opcionales que estoy usando son:
--source-maps
y --out-file $FileNameWithoutExtension$.js $FilePath$
$ FileNameWithoutExtension $ .js es una variable de la aplicación WebStorm y solo el archivo está siendo cargado por el vigilante y $ FilePath $ es la ruta absoluta al archivo.
Entonces el comando se ve así (creo que en realidad no lo veo ejecutado):
babel --source-maps --out-file main_config.js ./_GULP/
etc para los otros archivos ...
Todos los archivos son procesados bien por babel, creo. Veo las exportaciones y lo necesito en el JS generado.
tl; dr
En gulpfile.js
estoy haciendo:
gCfg = require(''./_GULP/main_config'');
<- ¡esto requiere trabajos!
Sin embargo, cuando intento ejecutar GULP, falla inmediatamente y en la consola obtengo:
Error: Cannot find module ''_classes/Gcfg''
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:286:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/Users/xxx/xxx/xxx/xxx/xxx/_GULP/main_config.js:9:20)
at Module._compile (module.js:434:26)
at Object.Module._extensions..js (module.js:452:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
La pregunta
¿Por qué no puedo exportar la clase en Gcfg.es6
e importarla a main.es6
usando es6 import / export? ¿Se necesita un relleno policristalino (estoy cargando bable / polyfill)? ¿Es que tengo _
en mi camino? He estado luchando en esto por mucho tiempo.
¡Gracias!
Bueno, por una cosa que tienes:
import Gcfg from ''_classes/Gcfg'';
Si está compilando en CommonJS y no tiene ninguna configuración especial, Node intentará cargar node_modules/_classes/Gcfg
. Probablemente quieras:
import Gcfg from ''./_classes/Gcfg'';