2016-05-04 10 views
0

Ich weiß nicht, ob ich etwas verpasst oder einen Fehler gemacht habe. Wenn Sie jedoch ein Modul benötigen, wird nur ein leeres Objekt zurückgegeben.Browser funktioniert nicht richtig in Gulp

Dies ist nur ein Beispiel meines Projekts.

Tools Ich bin mit:

gulp - 3.9.1 
browserify - 13.0.0 
vinyl-source-stream - 1.1.0 

Hier ist mein Arbeitsverzeichnis:

root/ 
    dist/ 
    src/ 
    external.js 
    main.js 
gulpfile.js 


main.js

var External = require('./external.js'); 
console.log(External); 


external.js

function Hello() { 
    return 'Hello from the otherside!'; 
} 

module.exports = { 
    testFunc: Hello 
}; 


gulpfile.js

var browserify = require('browserify'); 
var vinyl_source_stream = require('vinyl-source-stream'); 

gulp.task('concat', function() { 
    return browserify('./src/main.js') 
    .bundle() 
    .pipe(vinyl_source_stream('bundle.js')) 
    .pipe(gulp.dest('./dist/')) 
}); 
+0

müssen Sie browserify und Vinyl in Ihrem gulpfile.js erfordern. und stellen Sie sicher, dass der Pfad Ihrer external.js korrekt ist, da wir nicht wissen, dass der Fehler in der Datei auftritt. – wolfrevo

+0

ja ich habe sie benötigt, und auch gibt es keine Fehler im Terminal – CRIS

+0

dummer Fehler. In meinem Projekt habe ich nicht bemerkt, dass die 'module.exports' innerhalb der Funktion waren, weshalb die require-Anweisung ein leeres Objekt zurückgibt – CRIS

Antwort

0

Erste:

module.exports = function() { 
    testFunc: Hello 
}; 

, so dass Sie ein Objekt Prototyp exportieren.

Zweite

var External = require('./external.js')(); // Notice the() 

so dass Sie diesen Prototyp ausführen kann und eine Instanz des Objekts erhalten.