Istnieje wtyczka gulp-requirejs, ale jest to blacklisted z następującym komunikatem: "bezpośrednio użyj modułu require.js".Używanie modułu węzła optymalizującego requirejs z Gulp
Dokumenty są dość nieliczne, jak najlepiej użyć go w połączeniu z zadaniem Gulp-a?
W tamtejszym docs przykład:
var requirejs = require('requirejs');
var config = {
baseUrl: '../appDir/scripts',
name: 'main',
out: '../build/main-built.js'
};
requirejs.optimize(config, function (buildResponse) {
//buildResponse is just a text output of the modules
//included. Load the built file for the contents.
//Use config.out to get the optimized file contents.
var contents = fs.readFileSync(config.out, 'utf8');
}, function(err) {
//optimization err callback
});
Ale to mi nie pomogło ... Oto moja najlepsza próba:
var gulp = require('gulp'),
r = require('requirejs').optimize;
var config2 = {
baseUrl: 'src/js',
name: 'config',
out: 'dist/js/main-built.js'
};
gulp.task('scripts3', function() {
gulp.src(['src/js/**/*.js'])
.pipe(r(config)
.pipe(gulp.dest(config.out))
});
Ale moduł requirejs nie używać strumieni , więc to nie zadziała.
Istnieje również bardzo przyjazny Gulp amd-optimize, ale to nie to samo co r.js, jeszcze.
No ja nie używany łyk. Ale mam dobrą wiedzę na temat RequireJS i chrząkać i nie chrząkać ... Więc co to za strumienie, nie możemy używać normalnego zadania w haustem? – Vishwanath
Gulp używa [strumieni węzłów] (https://nodejs.org/api/stream.html) i [winylowych] (https://github.com/wearefractal/vinyl). Winyl jest dla mnie czarną magią w tym miejscu, [tutaj jest (https://medium.com/@contrahacks/gulp-3828e8126466) świetny post na jego temat. Właśnie znalazłem [ten problem] (https://github.com/jrburke/r.js/issues/785) zajmujący się właśnie tym. –
Mogłem po prostu uruchomić polecenie powłoki z gulp-shell. –