簡體   English   中英

在Babel中導出es6類 - 找不到模塊

[英]Export es6 class in Babel - Cannot find module

我在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/ etc for other files ...

我相信所有文件都由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)

問題

為什么我無法在Gcfg.es6導出該類並使用es6 import / export將其導入main.es6 是否需要填充(我正在加載bable / polyfill)? 難道我有_ “在我的路徑? 我剛剛對此進行了長時間的抨擊。

謝謝!

你有一件事:

import Gcfg from '_classes/Gcfg';

如果您正在編譯CommonJS並且沒有任何特殊設置,Node將嘗試加載node_modules/_classes/Gcfg 你可能想要:

import Gcfg from './_classes/Gcfg';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM