在Babel中导出es6类 - 找不到模块

Red*_*678 10 javascript ecmascript-6 gulp babeljs

我在SO上看到了这两个答案:

使用ES6导出类(Babel)

试图将类导出为模块ES6 babel

我没有使用Browserify,只是Gulp和Node,只想前言.


文件/文件夹结构:

./

./gulpfile.js

./_GULP

./_GULP/main_config.es6

./_GULP/_classes/Gcfg.es6


问题设置

我正在导出一个类Gcfg.es6文件,如下所示:

export default class Gcfg {
   constructor() {
        this.rootDir = './';
        this.latestDir = './_LATEST/';
        this.srcFolder = './_SRC/';
        ...
   }

    getSrcDir(dir="") {
        return this.srcFolder + dir;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

main_config.es6我试图导入:

import Gcfg from '_classes/Gcfg';
Run Code Online (Sandbox Code Playgroud)

关注这个GitHub帖子:

https://github.com/babel/babel/issues/849

我以为我做得很好.我正在使用WebStorm并有一个"文件监视器"设置来保存.es6文件来运行Babel.我没有做任何花哨的事情,我使用的唯一可选标志是:

--source-maps--out-file $FileNameWithoutExtension$.js $FilePath$

$ FileNameWithoutExtension $ .js是一个WebStorm应用程序变量,只是由观察者加载的文件,$ FilePath $是文件的绝对路径.

所以命令看起来像这样(我相信我实际上看不到它执行):

babel --source-maps --out-file main_config.js ./_GULP/ 等其他文件......

我相信所有文件都由babel处理.我在生成的JS中看到了导出和需求.

TL;博士

gulpfile.js我做的:

gCfg = require('./_GULP/main_config'); < - 这需要工作!

但是,当我尝试运行GULP时,它会立即失败并在控制台中得到:

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)
Run Code Online (Sandbox Code Playgroud)

问题

为什么我无法导出该类Gcfg.es6main.es6使用es6导入/导出将其导入?是否需要填充(我正在加载bable/polyfill)?是我_在我的道路上吗?我刚刚对此进行了长时间的抨击.

谢谢!

JMM*_*JMM 31

你有一件事:

import Gcfg from '_classes/Gcfg';
Run Code Online (Sandbox Code Playgroud)

如果您正在编译CommonJS并且您没有任何特殊设置,Node将尝试加载node_modules/_classes/Gcfg.你可能想要:

import Gcfg from './_classes/Gcfg';
Run Code Online (Sandbox Code Playgroud)