2016-11-29 5 views
0

UMDモジュールライブラリを使用してWebPackおよびエクスポートされたクラスに問題があります。問題は、パックドバンドルをブラウザにロードしようとすると、エクスポートされたオブジェクトが空になっていることです(エクスポートされたオブジェクトと一致するプロパティはありません)。WebPack、Babel、ES2015を使用するUMDモジュールのエクスポートされたタイプがありません

私はこのための簡単なテストプロジェクトを作成:

プロジェクト構造

~/Playground/webpack-exports-test tree -I node_modules 
. 
├── build 
│   ├── test.html 
│   ├── testlib.js 
│   └── testlib.js.map 
├── bundle.js 
├── package.json 
├── src 
│   ├── a.js 
│   └── b.js 
└── webpack.config.js 

webpack.config.js

let path = require('path'); 
let libraryName = 'testlib'; 
let bundleName = libraryName + '.js'; 

module.exports = { 
    context: __dirname, 
    entry: './bundle.js', 
    output: { 
     path: path.join(__dirname, 'build'), 
     filename: bundleName, 
     library: libraryName, 
     libraryTarget: 'umd', 
     umdNamedDefine: true 
    }, 
    devtool: 'source-map', 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       loader: 'babel-loader', 
       exclude: /node_modules/, 
       query: { 
        presets: ['es2015'] 
       } 
      } 
     ] 
    } 
}; 

package.json

を210
{ 
    "name": "webpack-exports-test", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
     "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
     "babel-core": "^6.18.2", 
     "babel-loader": "^6.2.8", 
     "babel-preset-es2015": "^6.18.0", 
     "webpack": "^1.13.3" 
    } 

} 

SRC/a.js

export class A { 
} 

SRC/b.js

import {A} from './a.js' 

export class B extends A { 
} 

bundle.js

import {A} from './src/a.js' 
import {B} from './src/b.js' 

WebPackで生成されたコードをデバッグしようとすると、クラスオブジェクトが正しく作成され、exportsに渡されたようですが、グローバルオブジェクトには何も返されません。

お願いします。

答えて

0

私はその答えを見つけました。問題は、エントリbundle.jsがシンボルをエクスポートしていないことでした。

これは、それが仕事になり

import {A} from './src/a.js' 
import {B} from './src/b.js' 
export {A as A} 
export {B as B} 
関連する問題