Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Laravel 5扩展长生不老药,包括棕色化_Javascript_Node.js_Coffeescript_Laravel 5_Laravel Elixir - Fatal编程技术网

Javascript Laravel 5扩展长生不老药,包括棕色化

Javascript Laravel 5扩展长生不老药,包括棕色化,javascript,node.js,coffeescript,laravel-5,laravel-elixir,Javascript,Node.js,Coffeescript,Laravel 5,Laravel Elixir,我的browserify工作流(从coffee到js,带有browserify shim和coffeeify)如下所示: 我有两个主文件,app.coffee和\u app.coffee,分别用于前端和后端。这两个文件分别位于resources/coffee/front和resources/coffee/back。我正在尝试将browserify任务包含在laravel elixir中,这样结果文件将位于public/js/app.js和public/js/_app.js上,并且可以在以后修改b

我的browserify工作流(从coffee到js,带有
browserify shim
coffeeify
)如下所示:

我有两个主文件,
app.coffee
\u app.coffee
,分别用于前端和后端。这两个文件分别位于
resources/coffee/front
resources/coffee/back
。我正在尝试将
browserify
任务包含在laravel elixir中,这样结果文件将位于
public/js/app.js
public/js/_app.js
上,并且可以在以后修改
build
文件夹

到目前为止,我已经尝试通过在elixir的node_modules
components
文件夹中创建一个
browserify.js
文件来扩展elixir。内容是:

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);
});
browserify的配置为:

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'
        }]
    }
然后在我的吞咽长生不老药任务中,我做了以下几点:

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']);
    });
});
这不起作用,因为elixir中不包含
回调
函数(最初是gulp的)。即使是这样,elixir手表也不会听我原来的
.coffee
文件(我正试图看
参考资料/coffee/***.coffee
中的整个coffee文件)

因此,我认为解决方案是,如果文件发生更改,则重新运行整个elixir过程,如:

gulp.task('default', function() {
    runSequence('coffeelint', 'browserify', 'elixir', 'images', 'watch');
});
和我的
观察任务:

gulp.task('watch', function() {
    gulp.watch(config.browserify.watch, ['coffeelint', 'default']);
    gulp.watch(config.images.src, ['images']);
});

但错误是,它说elixir中的sass()函数不能链接到browserify()。你知道怎么做吗?

你不能合并它们,但你可以同时运行这两个

//gulp.js in the root folder
var elixir = require('laravel-elixir');

var browserify  = require('browserify');

elixir(function(mix) {

    mix.sass(['app.scss'], 'public/css');
});

elixir(function(mix) {

    mix.browserify(['app.js'], 'public/js');
});

拉维长生不老药与browserify捆绑在一起,因此无需满足browserify的要求,您所能做的就是

elixir(function(mix) {
    mix.browserify(['main.js'], 
                    'output directory',
                    'base-directory-if-different-from-public-folder');
});