有没有办法在没有package.json的情况下使用browserify-shim?

时间:2015-03-23 23:53:48

标签: gulp browserify browserify-shim

我需要将browserify-shim用于我的一些browserify依赖项,但我无法编辑我的package.json。我在gulp中使用browserify。可以从API中独家指定所有package.json部分吗?我想象的是这样的事情:

return gulp.src('glob/path/to/my/main/js/file.js')
    .pipe(browserify({
        debug: false,
        transform: ['browserify-shim'],
        shim: {
            'jquery': {
                exports: 'jQuery'
            }
        }
    }));

然后,我的输出带有var $ = require('jquery');var $ = jQuery;,因为我们现在正在使用jQuery作为全局。这可能吗? Whne

2 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用exposify转换。 browserify-shim是一个based on it,由同一个人写。

E.g:

return browserify('glob/path/to/my/main/js/file.js', { debug: false })
    .transform('exposify', { expose: {'jquery': 'jQuery' }})

答案 1 :(得分:1)

<强> gulpfile.js

gulp       = require('gulp')
browserify = require('gulp-browserify')

gulp.task('browserify', function(){
    var src = 'test.js'

    gulp.src(src)
        .pipe(browserify({
            shim: {
                jQuery: {
                    path: './bowser_components/jquery/dist/jquery.min.js',
                    exports: '$'
                }
            }
        }))
        .pipe(gulp.dest('./build/js'))
})

<强> test.js

$ = require('jQuery')

console.log($);