Javascript 如何从browserify/babelify导出全局变量,以便在没有browserify的项目中使用?

Javascript 如何从browserify/babelify导出全局变量,以便在没有browserify的项目中使用?,javascript,ecmascript-6,browserify,babeljs,Javascript,Ecmascript 6,Browserify,Babeljs,场景: 我有两个设置完全不同的项目: 常规网站,遗留代码和简单的吞咽设置 小型宠物项目。JS slider插件是在ES6类的帮助下编写的(使用babel传输)。JS吞咽任务: gulp.task('js', function() { return gulp.src('src/scripts/*.js') .pipe($.plumber()) .pipe(through2.obj(function (file, enc, next) { browserify(file.path, { de

场景:

我有两个设置完全不同的项目:

  • 常规网站,遗留代码和简单的吞咽设置
  • 小型宠物项目。JS slider插件是在ES6类的帮助下编写的(使用babel传输)。JS吞咽任务:

    gulp.task('js', function() {
    return gulp.src('src/scripts/*.js')
    .pipe($.plumber())
    .pipe(through2.obj(function (file, enc, next) {
        browserify(file.path, { debug: true })
        .transform(require('babelify'))
        .transform(require('debowerify'))
        .bundle(function (err, res) {
            if (err) { return next(err); }
            file.contents = res;
            next(null, file);
        });
    }))
    .on('error', function (error) {
        console.log(error.stack);
        this.emit('end')
    })
    .pipe( $.rename('alder.js'))
    .pipe( gulp.dest('dist/scripts/'));
    
    }))

  • 我想要实现什么?

    我希望能够在这个常规网站上使用browserify/babelify输出的文件(无需设置整个browserify/babelify内容)

    问题

    当然,browserify/babelify做了一些神奇的事情,最后将变量包装到函数范围中,隐藏了这个变量/构造函数。所以问题是,导出可用于其他项目的全局变量/构造函数的正确方法是什么?此时,我唯一想到的是将我的函数附加到窗口对象,如:

        class Alder { // constructor and then methods }
        export default Alder;
        window['Alder'] = Alder
    

    还有其他想法吗?

    设置
    standalone
    选项:

    opts.standalone
    为非空字符串时,将使用该名称和包装创建一个独立模块。您可以在独立全局导出中使用名称空间,使用字符串名称中的
    作为分隔符,例如
    'a.B.C'
    。全球出口将持续增长


    谢谢你的信息。看起来这个选项实际上也将函数附加到窗口对象:)是的,但它也适用于CommonJS和其他环境。