gpt4 book ai didi

javascript - 在同一页面上使用 Browserify 和 RequireJS?

转载 作者:可可西里 更新时间:2023-11-01 02:35:45 26 4
gpt4 key购买 nike

所以我遇到了一个有趣的用例,我正在使用 Browserify 将我的所有 Assets 捆绑在一个项目中,但是当某个特定的时候需要加载一个大的外部(项目外部)模块- 应用程序窗口被访问。 (这是一个视频播放器模块,由三个脚本组成,需要时会异步拉入)。

目前我从 uncalled object 收到各种错误如果在 Browserified 之前加载 requireJS 模块会出错 app.js文件,到 cannot find module如果在 Browserified 代码之后加载错误。

无论如何我可以让 Browserify 和 RequireJS 在同一页面上很好地播放吗?我快疯了!

最佳答案

TL;DR - 在浏览器脚本中使用 window.require

也许它仍然可以帮助某人。我碰巧使用了一个完全基于 requireJS 风格 AMD 的“外部”基于 dojo 的库,这绝对是非“browserifyeble”并且不可转换为 CommonJS 或任何理智的东西。我自己的代码完全是浏览器化的。它像这样工作正常:

  1. 在浏览器化脚本之前加载 AMD 加载器(它定义了全局 require 函数):

    <script src="dojo/dojo.js"></script> <!-- RequireJS/AMD loader, defining a global 'require'-->
    <script src="app/main.js"></script> <!-- The Browserify bundle -->
  2. 在你自己的 js 中,在 window 对象上调用 require 函数(因为你会有一个本地浏览器 ify-require 遮蔽全局)

    window.require(['dojo/dojo'], function (dojo) { ... });
  3. “外部”应用程序或库自行调用 require 来加载子模块等,工作正常,因为代码不在 browserify 上下文和全局 require 没有隐藏在那里。

也许如果你有一些纯粹的标准 RequireJS 模块,你可以以某种方式将它们转换为可浏览的,但在我的情况下,这不是一个选择。

关于javascript - 在同一页面上使用 Browserify 和 RequireJS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24168851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com