2017-05-30 21 views
1

グッド午後にランタイムの問題を変換し、バベルはWebPACKの2

これは私がwebpack's githubで報告された同じ問題ですが、私はので、ここで質問を開いて、何か間違ったことをやって1かもしれないと思います。

私はバベルWebPACKの2を設定しようとしている、との要件の一つは、このようなSymbolとしてビルトインをtranspileすることです。

これでうまくいきましたが、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", { 

Devの依存性:

  • "のWebPACK": "2.6.1"、
  • "のWebPACK-devのサーバー": "2.4.5"、
  • "のWebPACK-通知": "1.5.0"
  • 「バベル-cli ": "6.24.1"、
  • "バベル-ローダー": "7.0.0"、
  • は "バベル・プラグイン・変換・ランタイム": "6.23.0"、
  • " babel- 「プリセット-s2015」:「6.24.1」、
  • 「バベルプリセット段階-3」:「6.24.1」

依存性: - "バベルランタイム": "6.23.0" 任意の助け

ありがとう!

答えて

2

問題がincludeであると思われます。何らかの理由でpath.resolveまたはpath.joinを使用できませんでした。ウェブパックdocumentationにそのような例があります。

次のようWebConfigのはそれだけで正常に動作している場合:

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

        } 
       } 

     } 
    ] 
} 

いずれにせよ、今es2015プリセットでfalseにモジュールを設定することで解決することができるexports not definedの問題点は、(ありますVanuanのおかげで、 Githubの提案):

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

IE以上のブラウザでは、es-shims - ECMAScript仕様をレガシーJSエンジンに移植するライブラリを使用する必要があります。

index.html(または同等のもの)の最初のインポートとして追加された場合、以下のlibsが問題を解決する可能性があります。ここでは例えば一つです:

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

に必要となる可能性があるすべてのlibのために、このリンクを参照してください: ES-Shims

+0

わかりました。インターネットエクスプローラの事は単なる例だった。出力は、手動で実行中のバーベルとは異なります(IEなどのブラウザでシンボルの動作を行います)。 – Apidcloud

+0

多くのことに感謝します。心に留めておくと便利なリソース – Apidcloud

+0

問題は解決しています。 – Nimrod

関連する問題