2017-05-12 11 views
1

node_moduleが存在しないため、lib/フォルダにjwplayerがあります。私はそれをインポートできるようにexpose-loaderを使用しようとしました。私のWebPACKでは、私は仕事にこれを取得するために、以下の基本的なセットアップを持っている:webpack 2でエクスポーズローダーを使用してモジュールをロードする

const path = require('path'); 

module.exports = { 
    // ... 
    module: { 
    rules: [{ 
     test: /\.jwplayer\.js$/, 
     use: { 
     loader: 'expose-loader', 
     options: 'jwplayer', // have also tried `options: { name: 'jwplayer' }` 
     }, 
    }] 
    }, 
    resolve: { 
    alias: { 
     jwplayer: path.join(__dirname, './lib/jwplayer-7.7.4/jwplayer.js'), 
    } 
    }, 
    externals: { 
    window: 'Window', 
    } 
}; 

奇妙なことは、jwplayerwindowオブジェクトに露出されているが、それはモジュールとして使用することはできません。

import jwplayer from 'jwplayer'; 

console.log(jwplayer);   // Object {} (not jwplayer) 
console.log(window.jwplayer); // function jwplayer() {} 

私は間違って読み込んでいますか? webpack 2でjwplayerでどのように読み込むべきですか?

答えて

1

これはエクスポーズローダーの使い方ではありません。エクスポーズローダは、バンドルがロードされたときにグローバルコンテキストに何かを公開するようにwebpackに指示します。私の理解は、バンドル自体の中でjwplayerを使いたいということです。

あなたはそれが(例えば、分析)私は通常、スクリプトをインポートする方法です、script-loaderを使用することができます

+0

私はパッケージに含めていますか? – corvid

+0

ええ、あなたはまだ同じ問題を抱えている可能性があります:準備ができているjwplayerです。私の経験では、サードパーティのツールの中にはcommonjsと互換性がないものがありますので、スクリプトローダーを使ってインポートします。何らかの理由で財団が私に頭痛を与えていたので、私は過去にjQueryでも同じことをしました。スクリプトローダーがすべてを修正 – Ematipico

関連する問題