2017-02-03 3 views
2

Je crée une application avec le service JS AirConsole. AirConsole ne fournit leur bibliothèque en tant que fichier .js vous inclure dans votre page avec l'habituel:Importer un script fournisseur non module dans webpack

<script type="text/javascript" src="https://www.airconsole.com/api/airconsole-1.6.0.js"></script> 

Cependant, j'utilise Webpack et voudrais import le script dans mes autres fichiers JS. J'ai essayé quelques méthodes sans chance:

  1. Créer un fichier d'entrée nommé vendor qui importe le fichier airconsole.js. Cela crée un fichier vendor.bundle.js que je peux inclure sur ma page
  2. Ajoutez le chemin d'accès AirConsole à mon point d'entrée index afin que le script soit inclus dans le fichier bundle.js. Avec cette méthode, je peux vérifier le code AirConsole est inclus dans le fichier bundle.js mais en essayant de créer une nouvelle instance de AirConsole résultats dans AirConsole est définie

Suis-je sur la bonne voie avec ces méthodes? Sinon, quelle est la méthode recommandée pour importer un fichier non-module .js?

Répondre

5

Le meilleur moyen est une action que nous appelons "shimming". Vous pouvez consulter notre nouvelle page de documentation pour plus d'informations. Il y a plusieurs façons de le faire (cela dépend des besoins) pour votre non-module.

https://webpack.js.org/guides/shimming/

+0

On dirait que j'ai besoin du 'script loader' si j'utilise [fichier] (https://www.airconsole.com/api/airconsole-1.6.0.js). Lorsque j'essaie de créer une nouvelle instance en utilisant 'const airconsole = new AirConsole()', une erreur 'undefined' est générée. –

+0

De même, 'script-loader' fonctionne-t-il dans le fichier' webpack.config' ou est-il uniquement destiné aux instructions 'require'. –

+0

Chaque chargeur que vous pouvez utiliser dans votre configuration (ce qui est recommandé) vous pouvez utiliser la propriété 'include' pour cibler un chemin abs spécifique d'un fichier pour le chargeur dans config. –