问题标签 [browserify-shim]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2047 浏览

gruntjs - grunt browserify 反应需要 jquery

使用最新的节点和 Grunt 0.4.x,反应 0.10.x

通过 Grunt 对需要 jquery 的 React JSX 文件执行 browserify:

在阅读了类似的问题后,尝试将 shim 转换移动到package.json中。在我的package.json文件底部有以下内容:

无法让它通过浏览器化解析来自 Grunt 的简单 JavaScript 文件(仅使用“var $ = require('jquery');)。 Gruntfile.js具有:

运行 Grunt 会出现以下错误:

如果并且当我开始工作时,我假设可以将“reactify”添加到package.json中的转换数组中。

0 投票
1 回答
950 浏览

javascript - Angular 模块和 browserify

我设法在 package.json 中用这个来填充角度

这在 shim.js

这样我就可以在单独的脚本标签中包含 angular,并且它不会被 browserify 捆绑。但是我不知道如何为 ngRoute 做同样的事情。非常感谢一些帮助。

0 投票
3 回答
4320 浏览

jquery - 将 browserify 与 npm jQuery 和非 npm 插件一起使用

我正在使用browserify来捆绑前端代码。到目前为止一切都很好,但是我在混合 npm 和非 npm 包时遇到了困难。例如,使用 npm 版本的 jQuery 和非 CJS 版本的 jQuery 插件。

我目前的解决方案是使用browserkey inpackage.json指向 jQuery 的 dist,然后使用browserify-shim将其添加为插件的依赖项。

有比我目前拥有的更清洁的方法吗?

编辑:我目前正在尝试使用 npm 并package.json管理我的所有依赖项,所以我不想在这个项目上使用 bower。叫我疯了:)

包.json

0 投票
1 回答
1499 浏览

knockout.js - 使用 Browserify + Knockout + Knockout 投影

我正在尝试将这两者都包含knockoutknockout-projectionsBrowserify 的项目中。我正在使用browserify-shim将它们绑定在一起。

不幸的是,knockout-projections代码在需要时失败knockout,无论是编译时错误还是运行时错误——取决于 shim 的设置。

为了说明这个问题,我建立了一个 github 存储库:brianmhunt/bshim-ko-testcase

0 投票
1 回答
244 浏览

javascript - 如何使用 browerify-shim 正确填充 jquery / Backbone

我正在尝试构建一个使用主干/jquery 的独立 JS 库。这是一个代表我正在尝试构建的库的示例存储库。

我对这个库有几个目标:

  1. 不要暴露任何全局变量(即正确包装所有内容,以免泄漏)
  2. 不受 requireJS 等任何其他打包工具的影响
    • 这个库可以加载到任何其他网站,我不希望与可能存在的 JS 发生任何冲突(这超出了我的控制范围),例如 requireJS

因此,我的理解是,我可以使用 browserify-shim 正确填充这些模块,以便它们可以require在 browserify 中按预期使用。我很确定 shim 应该取消定义defines,并且require当它包装这些模块时,这将实现目标 #2。目标 #1 有望通过按预期使用 browserify 来实现。

我似乎真的无法让它工作,我不确定这是否只是我对 browserify-shim 的误解。无论我是否从命令行运行 browserify,我似乎都有同样的问题:browserify src/main.js -o build/main.js或使用 gulp 构建.

基本上,它好像browserify-shim甚至没有运行。如果你打开 index.html,你可以看到我加载的 requirejs 代码肯定会影响我的 lib,因为Backbone它只是一个空对象,然后 requirejs 崩溃。

你可以在 repo 中看到我的 package.json ,它看起来大致是这样的:

不知道我在这里错过了什么,但我没有运气。我想知道是否有人可以提供帮助或至少证实我正在努力实现的目标是正确的并且可以使用browserify-shim.

谢谢。

编辑

为了说明它绝对不是对模块进行填充,我创建了完全相同的abuild/main.js和 a 。build/main-shimmed.js我运行的 main.js 没有 shim 配置,而 shimed 有上述配置。我显然在这里遗漏了一些东西。

0 投票
1 回答
409 浏览

browserify - Browserify-shim 没有从 package.json 读取转换

我正在尝试使用browserify构建我的团队正在处理的新项目,但它无法识别来自package.json. 它将在 2 台机器上构建,但不会在另外 2 台机器上构建。

这是我的相关文章package.json

我正在从命令行运行 browserify。我的团队中有 4 台计算机,它正在一台Mac和一Windows台机器上运行,但我有 2Windows台机器无法运行。我们都从同一个 repo 中提取,我们所有的browserify版本npm都是相同的。接下来我该怎么办?

0 投票
0 回答
952 浏览

ember.js - 浏览器化 Ember.js 1.7

最新的 1.7 Ember beta 打破了我的 gulp-browserify 任务(如下配置),但有以下例外:

Error: browserify-shim needs to be passed a proper browserify instance as the first argument.

Gulp 一直在愉快地浏览 Ember 直到 1.7(并且在最新的 1.6 中继续这样做,使用下面的配置)。我在 1.7 的发行说明中注意到模块系统经历了一些剧变。

我的问题是:这是 Ember(或者 Browserify)中的一个合法错误吗?或者,Ember 是否不再打算与 browserify 等工具一起使用,转而支持其他特定方法?

确切的配置:

包.json:

(注意,这个特定站点已经通过标准脚本标签嵌入了 jQuery,因此需要 browserify-shim 和global:jquery dep 上的符号。)

gulpfile.js:

应用程序.js:

基本复制:

在测试目录中:

  • npm install gulp browserify gulp-browserify browserify-shim
  • 确保存在到 deps 的路径:
    • "handlebars": "./scripts/lib/handlebars-v1.3.0.js"
    • "ember": "./scripts/lib/ember-1.7.min.js"
  • app.js在上面添加我的示例
  • 添加我的packages.json上面
  • 添加我的gulpfile.js上面
  • gulp
  • 将 Ember 1.7 换成 1.6 以取得成功。

谢谢!

0 投票
1 回答
4211 浏览

jquery - gulp browserify shim and jquery depended

I am using gulp to build my scripts, and Im trying to "shim" jquery 1.11 to my js script so it could use it, my current codes:

SimpleScript:

skeleton.js:

Gulfile.js

All of this runs great and smooth... BUT I get an error that $ is not defined in the --> SimpleScript.init() that calls --> console.log('xxx');

and of course when I try to access jquery in the chrome console with --> "$" it is not defined

* notes - the file that gets created has jquery 1.11 inside it, I can see it. - I tried referencing as jquery, jQuery and $ all the same.

0 投票
1 回答
6196 浏览

javascript - 使用带有 jQ​​uery 插件的 Browserify

一些简短的背景:我正在使用 browserify 和 browserify-shim(以及 gulp 构建)来创建一个网络应用程序。在此问题之前,我require从 npm 输入 jquery,所以我没有任何问题。一旦我开始进行一些优化,我就意识到包含 jQuery 的捆绑包有多么庞大。所以现在我从 CDN 中获取带有 script 标签的 jQuery 并将其放在 bundle.js 文件之前。但是我在将 jQuery 声明为全局并在 browserify 和 browserify-shim 中正确填充我的 jQuery 插件时遇到问题。当我运行 gulp 构建时,我不断收到相同的错误:

[gulp] gulp-notify: [Compile Error] module "jquery" not found from "/Volumes/Chetan/Users/cshenoy/Projects/urbanstems-node/app/plugins/jquery.inview.js"

似乎 browserify-shim 并没有意识到 jQuery 是一个全球性的。

作为参考,我使用的是inview 插件

这是我的 package.json 和相关部分

让我知道我还可以包括什么来帮助诊断错误。

0 投票
0 回答
447 浏览

javascript - Browserify Shim Buffer 核心模块

我正在尝试浏览我的库,其中有Buffer核心模块在不同的地方使用。

我想Buffer用我们正在使用的另一个库来填充这个核心。

我试图查看https://github.com/thlorenz/browserify-shim在那里我可以指定我想要填充的模块,但它似乎不起作用。

我创建了一个名为shim.js

Package.json

Gruntfile.js(我正在使用grunt-browserify

现在,当我咕哝构建文件时,我仍然看到这是需要的:

在我的浏览器中抱怨