2016-07-29 9 views
0

So sieht mein AngularJS Code wie folgt:einen Text loader in Webpack für RequireJS Text Plugin Mit

define(['angular', 'text!./template.html'], function (angular, template) { 
'use strict'; 

return angular.module('app.widget', []) 
    .directive('MyWidget', function(){ 
     //.... use the template here 
}) 

ich den Text Plugin bin mit für RequireJS die HTML-Vorlage zu erhalten und in der AngularJS-Direktive in. Ich möchte Webpack verwenden und es liest den AMD-Stil-Code in Ordnung, aber es kann nicht mit dem Text-Plugin arbeiten.

Kann jemand den Textlader für Webpack mit requirs arbeiten? Es gibt some solutions out there und discussion thread, aber ich kann sie nicht zur Arbeit bringen.

In meinem webpack.config.js Ich habe

bekam
loaders: [ 
    { test: /^text\!/, loader: "text" } 
] 

Dank

Antwort

1

Sie müssen raw-loader, installieren, die das webpack Äquivalent

zum Laden Raw-Dateien ist
npm i raw-loader 

Dann Sie müssen den requireJS-Stil mit der raw-loader als Aliasnamen versehen (resolveLoader wird in das Stammverzeichnis des webpack-Konfigurationsobjekts eingefügt)

resolveLoader: { 
    alias: { 
     'text': { 
       test: /\.html$/, 
       loader: "raw-loader" 
      }, 
    } 
} 

prüfen diese Frage SO: Webpack loader aliases?

0

Eine ähnliche Lösung, die für mich mit Webpack arbeitete 2.2:

resolveLoader: { 
    alias: { 
     // Support for require('text!file.json'). 
     'text': 'full/path/to/node_modules/text-loader' 
    } 
} 

Und Text-loader installieren:

npm install text-loader 
1

Eigentlich Sie muss den Knotenmodulpfad nicht angeben. Es funktioniert, wenn Sie nur den Namen des tatsächlichen Ladeprogramms wie unten angeben

resolveLoader: { 
     alias: { "text": "text-loader" } 
    }, 
+0

Webpack unterstützt nicht mehr die Antwort-Syntax - diese Lösung funktionierte für mich – Charles