2017-05-30 65 views
1

下午好,巴貝爾變換運行問題用的WebPack 2

這是我在webpack's github報道了同樣的問題,但我懷疑我可能是一個做錯事,因此在這裏打開一個問題。

我想配置的WebPack 2巴貝爾,並要求之一是transpile內置插件如Symbol

儘管現在工作正常,當我嘗試使用webpack和babel的轉換運行時,我無法使用exports *

輸入文件(SRC/index.js):

export * from './secondFile' 

secondFile.js:

export let TESTSYMBOL = Symbol('test'); 

export let TESTSYMBOL2 = Symbol('test2'); 

webpack.config.js(只拷貝的相關部分) :

module: { 
    rules: [ 
     { 
      test: /\.jsx?$/, 
      // Skip any files outside of `src` directory 
      include:path.resolve(__dirname, 'src'), 
      use: { 
       loader: 'babel-loader', 
       options: { 
        presets: ["es2015", "stage-3"], 
        plugins: ['transform-runtime'] 
       } 
      } 
     } 
    ] 
} 

腳本

"webpack -d --config config/webpack.config.js" 

輸出文件gist

異常

Uncaught ReferenceError: exports is not defined - at Object.defineProperty(exports, "__esModule", { 

開發依賴關係:

  • 「的WebPack」: 「2.6.1」,
  • 「的WebPack-dev的服務器」: 「2.4.5」,
  • 「的WebPack-通知」: 「1.5.0」
  • 「通天塔-cli 「: 」6.24.1「,
  • 」巴別裝載機「: 」7.0.0「,
  • 」巴別-插件變換的運行時「: 」6.23.0「,
  • 」 babel- preset-es2015「:」6.24.1「,
  • 」babel-preset-stage-3「:」6.24.1「

依賴關係: - 「巴別塔的運行時」: 「6.23.0」

感謝您的幫助!

回答

2

看來,問題出在include。出於某種原因,我無法使用path.resolvepath.join。 webpack documentation就有這樣的例子。

如果webconfig如下,它工作得很好:

module: { 
    rules: [ 
     { 
      test: /\.js$/, 
      include: [ 
       /src/ 
      ], 
      // or exclude: [/node_modules/], 
      use: 
       { 
        loader: 'babel-loader', 
        options: { 
         plugins: ['transform-runtime'], 
         presets: ['es2015', 'stage-3'] 

        } 
       } 

     } 
    ] 
} 

不管怎樣,現在有一個與exports not defined一個問題,這可以通過在ES2015預設(在設置模塊,以虛假感謝Vanuan得到解決Github的建議):

presets: [['es2015', { modules: false }], 'stage-3'], 
0

對於IE或更舊的瀏覽器,我需要使用es-shims - 將ECMAScript規範移植到傳統JS引擎的庫。

下面這些庫可能會解決您的問題,如果作爲您的index.html(或等效)上的第一個導入添加。這裏有一個例如:

<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-shim.min.js"></script> 

請參閱此鏈接的每個庫,您可能需要: ES-Shims

+0

我明白了。互聯網瀏覽器的東西只是一個例子。這個輸出與手動運行babel的輸出不同(這可以讓IE在瀏覽器上運行) – Apidcloud

+0

但是非常感謝!這是一個非常方便的資源,請記住 – Apidcloud

+0

沒問題,我會進一步解決您的問題。如果我找到了,我會在這裏發帖 – Nimrod