2016-08-07 11 views
0

Ich versuche herauszufinden, wie man dieses Javascript mit webpack einschließt, aber ich kämpfe. Ich installiere ein eckiges Modul namens angular-colorthief via npm. Ich habe es installiert und enthalten das Modul in meiner webpack Konfigurationsdatei:Wie man Webpack mit js verwendet, das nicht exportiert wird

if(TEST) { 
     config.entry = {}; 
    } else { 
     config.entry = { 
      app: './client/app/app.js', 
      polyfills: './client/polyfills.js', 
      vendor: [ 
       'angular', 
       'angular-colorthief', 
       'angular-animate', 
       'angular-aria', 
       'angular-cookies', 
       'angular-resource', 
       'angular-route', 
       'angular-sanitize', 
       'angular-socket-io', 
       'angular-material', 
       'lodash' 

      ] 
     }; 
    } 

Das Problem ist, dass innerhalb des Winkel colorthief Verzeichnis ist eine andere js, die die Winkelmodul davon abhängt, welche farb thief.js genannt . Diese Datei exportiert nichts. Der Winkel colorthief Modul erfordert es so aus:

use strict'; 

require("./color-thief"); 

angular.module('ngColorThief', []) 
    .provider('$colorThief', [function() { 

Wenn ich meine Anwendung ausführen ich einen Fehler halte, dass ColorThief nicht definiert ist, denn obwohl dieser Skript in meinem Anbieter Bundle enthalten wird, es ist nicht verfügbar, wenn der Winkelmodul läuft. Kann mir jemand helfen, das zu beheben? Ich habe versucht, das exports-loader-Modul zu installieren, aber ich bin nicht sicher, wie ich es verwenden kann, um dieses Problem zu lösen. Dies ist der Loader, den ich hinzufügen wollte, aber das hat nicht funktioniert.

{ 
      include: require.resolve("./color-thief"), 
      loader: "exports?ColorThief!node_modules/angular-colorthief/color-thief.js" 
     } 

Antwort

1

Also ich bin mir nicht sicher, ob dies die richtige Lösung ist, aber es löste mein Problem. Wenn jemand mir einen besseren Weg sagen könnte, würde ich das definitiv zu schätzen wissen. Für jeden anderen, hier ist was ich meinen Lader hinzugefügt habe.

{ 
      include: require.resolve(path.resolve(__dirname, 'node_modules/angular-colorthief/color-thief.js')), 
      loader: "exports?ColorThief" 
     }, { 
      include: require.resolve(path.resolve(__dirname, 'node_modules/angular-colorthief/angular-colorthief.js')), 
      loader: "imports?ColorThief=./color-thief.js" 
     } 
Verwandte Themen