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

2024-03-30

设想:

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

  1. 常规网站、遗留代码和简单的 gulp 设置
  2. 小宠物项目。在 ES6 类的帮助下编写的 JS 滑块插件(用 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

还有其他想法吗?


Set the standalone option:

When opts.standalone是一个非空字符串,使用该名称和一个独立模块创建umd https://github.com/forbeslindesay/umd包装纸。您可以使用独立全局导出中的命名空间.在字符串名称中作为分隔符,例如'A.B.C'。全球出口将已消毒并装在骆驼箱中 https://github.com/ForbesLindesay/umd#name-casing-and-characters.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Javascript:如何检查异步操作是否仍在挂起/正在进行中?

    我想知道是否可以以某种方式检查 Javascript 中的异步操作是否仍处于待处理状态 因为我正在执行调用特定 URL 的数据库请求 虽然 db 调用仍在进行中 但我想停止任何其他传入的 db 调用 这意味着 停止对该 URL 的任何进一步
  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • 允许指针(单击)事件穿过元素,同时保持滚动功能

    我的目标是拥有一个允许 下面要点击 交互的元素 滚动 众所周知 1 的解是pointer events none 这正如中所描述的单击 DIV 到底层元素 https stackoverflow com questions 3680429
  • 如何从 URL 字符串中删除某些参数?

    我有这个var存储表示充满参数的 URL 的字符串 我正在使用 AngularJS 我不确定是否有任何有用的模块 或者可能使用纯 JavaScript 来删除不需要的 URL 参数而无需使用正则表达式 例如我需要删除 month 05并且
  • 区分单击与 mousedown/mouseup

    我已经阅读了有关这种情况的 stackoverflow 上的几个答案 但没有一个解决方案有效 我尝试根据用户是否单击某个元素或使用 jQuery 将鼠标按住该元素来执行不同的操作 有可能做到这一点吗 onMouseDown 将在按下左侧或右
  • Chrome 扩展程序中的后台脚本到底何时运行?

    在我的 chrome 扩展中 我有一个后台脚本 它将使用XMLHttpRequest note that this code is in the global scope i e outside of any function also n
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • 为什么“dtoa.c”包含这么多代码?

    我将是第一个承认我对低级编程的整体知识有点稀疏的人 我理解许多核心概念 但我不经常使用它们 话虽这么说 我对需要多少代码感到非常惊讶dtoa c http www netlib org fp dtoa c 在过去的几个月里 我一直致力于用
  • React:React 如何确保在浏览器有机会绘制之后调用 useEffect?

    useLayoutEffect 的文档说 useLayoutEffect 内计划的更新将被刷新 在浏览器有机会绘制之前同步进行 useEffect 的文档说 与 componentDidMount 和 componentDidUpdate
  • 如何获取数组中最后 5 个元素(不包括第一个元素)?

    在 JavaScript 数组中 如何获取最后 5 个元素 排除第一个元素 1 55 77 88 would return 55 77 88 添加其他示例 1 55 77 88 99 22 33 44 would return 88 99
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • 使用 ES6 模块导出/导入单个类方法?

    假设我有一个像这样的简单课程fileA js class foo constructor x this name x fooMethod x return x hello 我想导入并使用fooMethod in fileB js像这样 im
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • Rxjs 可观察等待直到满足某些条件

    我有以下重试逻辑来重试操作 对于单个请求来说它工作得很好 对于多个正在进行的请求 我想在重试之前等待现有的重试逻辑完成 handleError errors Observable
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • 如何在 OpenLayers 3 中删除监听器

    我做了一个copy https gis stackexchange com questions 178222 how to delete a listener in openlayers 3我在 stackoverflow 上提出的问题 因
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • Chrome Prerender 功能每次都会被取消

    我正在尝试 Chrome 中的预渲染功能 但是当我检查网络时 我可以看到任何链接的请求都被取消 我使用以下语法 我尝试了现场演示http prerender test appspot com http prerender test apps
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就
  • 使用 stopPropagation() 处理 React 事件委托

    我有一个 React 项目 应该可以放置在任何网站上 我的想法是 我托管一个 javascript 文件 人们放置一个具有特定 ID 的 div 然后 React 在该 div 中进行渲染 到目前为止 除了点击事件之外 这是有效的 这些事件

随机推荐

  • 行高向上舍入

    chrome 似乎将计算的值向下舍入line height 例如 line height 1 33 with font size 11px将计算出line height 14px 而确切的值是14 66所以我希望行高等于 15px 您知道是
  • AngularJS ng-value 布尔验证

    具体来说 我有两个单选按钮 它们的 ng model 值必须是布尔值 由于这对于正常的 html value 属性是不可能的 我发现有用的 Angularjs ng value 问题是当我想做一些验证时 当选择单选按钮 ng value f
  • Solr“实时”索引

    我知道有几个与此类似的问题 但它们没有为当前的问题提供简单的答案 抱歉 如果您觉得这是重复的 但我认为清晰易懂的答案将使很多人受益 那么 对于这个问题 Solr 索引更新可以自动化吗 如果可以的话 最佳方法是什么 这是一个简单的用例来澄清问
  • 使用 Powershell 将 PDF 打印为 XPS

    我想使用 Powershell 将包含 PDF 文件的文件夹转换为 XPS 文件 由于系统限制 我无法下载任何第三方软件 例如 iTextSharp 来完成此工作 我已经能够让Powershell打开文档并打开XPS的打印窗口 但名称始终为
  • 使用 javax.sound.midi 包设置乐器通道

    我在 javax sound midi 包中设置乐器时遇到问题 Synthesizer synthesizer MidiSystem getSynthesizer MidiChannel channels synthesizer getCh
  • Python setup.py 在 Egg 中包含 .json 文件

    我想将 json 文件也打包到 python Egg 文件中 例如 boto包有endpoints json文件 但是当我运行 python setup py bdist egg 时 它不包含 Egg 中的 json 文件 如何将Json文
  • greenhills 编译器关闭文件或部分文件的优化

    我发现了几个用于禁用专用代码部分的 GCC 优化的代码片段 使用编译指示 GCC 优化 0 但我找不到 Greenhils 编译器的类似内容 没有这样的选择吗 从手册 pragma ghs Ostring Turns on optimiza
  • Powershell 命令修剪以“\”结尾的路径

    如果路径结尾为 我需要修剪路径 C Ravi 我需要更改为 C Ravi 我有一个情况 路径不会以 那么它必须跳过 我尝试过 EndsWith 但是当我有时它会失败 代替 可以在 PowerShell 中完成此操作而不诉诸条件吗 考虑使用T
  • 检索 Win64 异常表中的所有条目

    从一些更清晰的理解Win64异常堆栈行走不显示条目 https stackoverflow com questions 14187450 win64 exception stack walking not displaying entrie
  • 需要字母和数字 - regEx

    我试图弄清楚如何只需要字母和数字而不需要任何其他字符 所以从字面上看 a z and d or 0 9 取决于对数字执行此操作的更好方法 因此 如果我有一个需要验证的字符串 toValidate Q23AS9D0APQQ2 It may s
  • 为什么泛型类型不能有显式布局?

    如果尝试使用以下方法创建一个通用结构 StructLayout http msdn microsoft com en us library system runtime interopservices structlayoutattribu
  • 类型参数不可分配给字符串

    我有一个格式化的 json 数据 我想在 d3 中使用它来绘制层次结构 它正在处理旧数据 但在 json 数据中添加更多维度后 出现以下错误 类型参数 name string 孩子们 组 数量 名称 字符串 组 数量 不可分配给 只读字符串
  • 安卓LVL合理吗?

    我即将发布我的第一个 Android 应用程序 我正在考虑为我的应用程序使用 Android 的许可服务 LVL 但现在我不确定不使用任何许可服务是否会更好 a LVL 无论如何都可以被破解 b LVL 导致我的应用程序出现一些延迟 你们有
  • 缩放后确定 HTML5 画布上的鼠标位置

    我正在开发一些 HTML5 中涉及画布使用的软件 我需要在一张画布上进行缩放并允许用户通过单击鼠标在画布上进行涂鸦 到目前为止 在我找到的一些示例的帮助下 我已经可以使用缩放功能了 问题是缩放后 我的绘图工具上的鼠标位置不正常 在进行任何缩
  • 绘制线而不是点 R

    这可能是一个简单的问题 但我无法找到解决方案 我有以下图 我正在使用图 CI 因为我无法用图 填充点 leg lt c 1 2 3 4 5 6 7 8 Col rar1 lt c rgb 1 0 0 0 7 rgb 0 0 1 0 7 rg
  • PyQt self.close() 在 __init__() 中

    我在 Python 2 7 下使用 PyQt4 时遇到了一些小问题 我正在编写一个小项目 其中有一些 QDialogs 相互打开 因此 我打开一个对话框 然后立即打开另一个对话框来检查某些内容 当出现错误检查时 我希望关闭整个对话框 它看起
  • 您可以设置整数的最大限制(C++)吗?

    如果我不想让一个整数超过 100 是否有任何简单的方法可以确保该整数永远不会超过 100 无论用户添加了多少 例如 50 40 90 50 50 100 50 60 100 50 90 100 尝试这个 std min 50 40 100
  • 从 JSON 创建多表头表

    我是熊猫新手 我正在尝试创建下表 C Perl line func line func version covered total covered total 我创建的 JSON 结构如下 version1 perl line covere
  • 使用 Google AppEngine MapReduce 处理所有记录后,如何从计数器获取值?

    使用 Google AppEngine MapReduce 处理所有记录后 如何从计数器获取值 或者我在这里错过了计数器的用例 示例代码来自http code google com p appengine mapreduce wiki Us
  • 如何从 browserify/babelify 导出全局变量以便在没有 browserify 的项目中使用?

    设想 我有两个设置完全不同的项目 常规网站 遗留代码和简单的 gulp 设置 小宠物项目 在 ES6 类的帮助下编写的 JS 滑块插件 用 babel 转译 JS 吞咽任务 gulp task js function return gulp