J'ai jwplayer dans mon dossier lib/
car il n'y a pas de node_module. J'ai essayé d'utiliser expose-loader
afin de pouvoir l'importer. Dans mon webpack, j'ai la configuration de base suivante pour obtenir ce travail:Utilisation de expose-loader avec webpack 2 pour charger un module
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',
}
};
La chose étrange est, jwplayer
est exposé sur l'objet window
, mais il est disponible en tant que module.
import jwplayer from 'jwplayer';
console.log(jwplayer); // Object {} (not jwplayer)
console.log(window.jwplayer); // function jwplayer() {}
Est-ce que je le charge incorrectement? Comment dois-je charger jwplayer avec webpack 2?
si je l'inclure dans un paquet? – corvid
Ouais vous pourriez mais vous avez toujours le même problème: être capable de préparer jwplayer. En tant qu'expérience personnelle, lorsque certains outils tiers ne sont pas compatibles avec les «commonjs», j'utilise le script-loader pour les importer. J'ai fait la même chose avec jQuery dans le passé parce que, pour une raison quelconque, Foundation me donnait mal à la tête. Script loader a tout réglé – Ematipico