【问题标题】:Export es6 class in Babel - Cannot find module在 Babel 中导出 es6 类 - 找不到模块
【发布时间】:2016-01-05 11:56:12
【问题描述】:

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

Exporting a class with ES6 (Babel)

Trying to export a class as a module 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)

问题

为什么我无法将Gcfg.es6 中的类导出并使用es6 import/export 将其导入main.es6?是否需要 polyfill(我正在加载 bable/polyfill)?是我的路径中有_ 吗?我只是在这个问题上挣扎了太久。

谢谢!

【问题讨论】:

    标签: javascript gulp ecmascript-6 babeljs


    【解决方案1】:

    你拥有的一件事是:

    import Gcfg from '_classes/Gcfg';
    

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

    import Gcfg from './_classes/Gcfg';
    

    【讨论】:

    • 这就是问题的全部?太好了!
    • @JMM 非常感谢,这正是我做错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2016-11-15
    • 2021-11-27
    • 2016-06-07
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多