Benim browserify iş akışı (kahveden js için, browserify-shim
ve coffeeify
ile) şu şekildedir:laravel 5 içerecek şekilde İksiri uzatmak browserify
Ben sırasıyla son kullanıcı ve arka uç için 2 ana dosyaları, app.coffee
ve _app.coffee
var. Her iki dosya da resources/coffee/front
ve resources/coffee/back
(sırasıyla). Sonuç dosyası public/js/app.js
ve public/js/_app.js
üzerinde olacak ve daha sonra build
klasörüne revizyon olabilir, böylece laravel elixir browserify
görev dahil etmeye çalışıyorum. Şimdiye kadar elixir'in node_modules ingredients
klasöründe bir browserify.js
dosyası oluşturarak iksiri genişletmeye çalıştım. içeriği: browserify için
var gulp = require('gulp');
var browserify = require('browserify');
var watchify = require('watchify');
var source = require('vinyl-source-stream');
var logger = require('../../../gulp/util/bundleLogger');
var errors = require('../../../gulp/util/handleErrors');
var config = require('../../../gulp/config').browserify;
elixir.extend('browserify', function(callback) {
var bundleQueue = config.bundleConfigs.length;
var browserifyThis = function(bundleConfig) {
var bundler = browserify({
cache: {},
packageCache: {},
fullPaths: true,
entries: bundleConfig.entries,
extensions: config.extensions,
debug: config.debug
});
var bundle = function() {
logger.start(bundleConfig.outputName);
return bundler
.bundle()
.on('error', errors)
.pipe(source(bundleConfig.outputName))
.pipe(gulp.dest(bundleConfig.dest))
.on('end', finished);
}
if (global.isWatching) {
bundler = watchify(bundler);
bundler.on('update', bundle);
}
var finished = function() {
logger.end(bundleConfig.outputName);
if (bundleQueue) {
bundleQueue--;
if (bundleQueue === 0) {
callback();
}
}
}
return bundle();
};
config.bundleConfigs.forEach(browserifyThis);
});
Yapılandırma geçerli:
browserify: {
debug: true,
extensions: ['.coffee'],
watch: './resources/assets/coffee/{front,back}/**/*.coffee',
bundleConfigs: [
{
entries: './resources/assets/coffee/front/app.coffee',
dest: './public/js',
outputName: 'app.js'
},
{
entries: './resources/assets/coffee/back/app.coffee',
dest: './public/js',
outputName: '_app.js'
}]
}
Sonra benim yudum iksir görevi, bunu:
var gulp = require('gulp');
var elixir = require('laravel-elixir');
gulp.task('elixir', function() {
return elixir(function(mix) {
mix.sass('app.scss').browserify().version(['.public/css/app.css', './public/js/app.js', '.public/js/_app.js']);
});
});
callback
fonksiyon olduğu için bu işe yaramazsa iksir içinde yer almaz (aslen gulp's). Öyle olsa bile, iksir saati orijinal .coffee
dosyamı dinlemiyor (resources/coffee/**/*.coffee
'da bulunan tüm kahve dosyasını izlemeye çalışıyorum).
gulp.task('default', function() {
runSequence('coffeelint', 'browserify', 'elixir', 'images', 'watch');
});
ve benim watch
görev:
gulp.task('watch', function() {
gulp.watch(config.browserify.watch, ['coffeelint', 'default']);
gulp.watch(config.images.src, ['images']);
});
Ama hata dosyası değişirse
Yani ne bir çözüm olarak düşündüm gibi tüm iksir prosedürünü yeniden çalıştırmaktır Bu, iksirdeki sass() işlevinin browserify() ile ilişkilendirilemeyeceğini söylüyor. Bunun nasıl yapılacağı hakkında bir fikrin var mı?