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

红2678

我在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;
    }
    ...
}

main_config.es6我试图导入:

import Gcfg from '_classes/Gcfg';

遵循此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; dr

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)

问题

为什么我无法使用es6 import / export导出Gcfg.es6并将其main.es6导入?是否需要一个填充纸(我正在加载圣经/填充纸)?_我走了吗?我已经为此苦苦思索太久了。

谢谢!

JMM

好吧,你有一件事:

import Gcfg from '_classes/Gcfg';

如果您要编译为CommonJS且没有任何特殊设置,那么Node将尝试加载node_modules/_classes/Gcfg您可能想要:

import Gcfg from './_classes/Gcfg';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章