问题标签 [browserify]

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 投票
4 回答
4097 浏览

google-chrome-extension - 您如何使用 Browserify 模块化您的 Chrome 应用程序?

我观看了以下Google Apps Office 视频并了解了如何使用 browserify 使用 node CommonJS 打包系统将您的 JS 打包到一个文件中。我喜欢这个想法,因为它还添加了许多移植到浏览器的节点库,并且可以处理 CoffeeScript。

视频没有涵盖的一件事是如何制作一个具有多个视图的 Chrome 应用程序仍然以DRY方式使用 browserify。让我解释。通常,您的 browserify 命令采用一系列 JS 文件(设计为模块)并将其连接成带有一些包装糖的单个 JS 文件。很高兴您从内容页面、背景页面或弹出页面中引用该 JS 文件。但是,如果您的应用程序同时具有背景页面你会在每个弹出页面中包含相同的编译 JS 文件吗?这不会导致 chrome 加载脚本两次(在两个实例中)吗?如果是这样,那么解释一切只是为了得到你想要的部分似乎是一种浪费。或者 require()/exports 模式是否可以防止对特定上下文可能不需要的模块进行不必要的解释?

如果这不是最佳实践,应该如何打包模块,使每个页面都以干巴巴的方式获取所需的模块,而不必重复自己或每页有单独的 browserify 包?其他人是如何处理这个话题的?

0 投票
2 回答
1982 浏览

javascript - Browserify - 找不到变量:需要

我正在使用客户端上需要的几个 node.js 模块:

index.js:

所以我认为 browserify 可能是最好的选择。捆绑文件效果很好,但是,bro​​wserify 将(function(){my code here})();导致Can't find variable: require错误的所有内容包装在 a 中。我怎样才能防止这种行为?

当我移除包装时,一切都按预期工作,没有错误。

0 投票
5 回答
2423 浏览

node.js - browserify v2 中间件

在开发中,我在我的 Express 服务器上同时使用 Coffeescript 和 Browserify 中间件来交付我的客户端 JS,如下所示:

app.use browserify mount: '/client.js', entry: './client.coffee', watch: yes

今天我正在升级我的依赖项,并在 browserify v2 网站上注意到了这一点:

browserify 中最糟糕的想法之一,用于托管捆绑包的临时 http 服务器中间件终于消失了。

对咖啡脚本的默认支持已不复存在。您仍然可以在您的程序中使用咖啡脚本,您只需要编译为 js 或自己将源转换挂钩到捆绑管道中。

请记住,如果您不同意我希望很多人会同意的这些削减,那么通过 v2 重构,您可以更轻松地了解 browserify 应该如何使用底层新库作为起点。

很公平。

唯一的问题是,我已经阅读了新 API 的文档,但我对如何实际实现自己的中间件有点茫然。事实上,我什至无法使用browserify.add()and获得一个基本的独立示例browserify.bundle(),更不用说作为快速中间件了。

我可以继续使用 v1,但由于这个项目仍在开发中,我想保持我的依赖项是最新的。任何建议都非常感谢。

更新:

我已经做到了这一点:

这行得通,除了我曾经说过的require './module'地方,我现在必须这样做require './module.coffee'。这不是很理想,我不想更新我的应用程序中的每个需求。

0 投票
1 回答
1207 浏览

node.js - 尝试使用 Browserify 模块时出现 esprima 错误

好的,所以我环顾四周,在网上找不到有关此错误的任何信息。

我正在尝试使用以下方式运行 Browserify:

browserify 应用程序/main.coffee -w -o public/client_bundle.js

它正在产生错误消息:

/usr/local/lib/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/esprima.js:3859 throw e; ^ 错误:第 4 行:throwError (/usr/local/lib/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/esprima.js:1161:21) 处出现意外令牌非法 (/usr /local/lib/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/esprima.js:1089:9)在前瞻(/usr/local/lib/node_modules/browserify/node_modules/module-deps /node_modules/detective/node_modules/esprima/esprima.js:1118:18)匹配(/usr/local/lib/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/esprima.js:1239 :

我不知道发生了什么。我认为这可能与弄乱/不兼容的节点模块有关。我已经完全删除了 node/npm 和所有 node_modules 并重新安装它们。

0 投票
1 回答
10204 浏览

javascript - Browserify v2 的全局要求

我想使用 Browserify 来捆绑我的文件,但是我需要将我的 Browserify 中的一个模块捆绑bundle.js在 HTML 页面本身上。目前这是不可能的,因为require页面上没有定义函数。

看来browserifyrequire定义的函数在bundle.jsIIFE 内部,所以我不能使用它。有没有可能把这个扔掉来代替 global require

我需要这样做,因为我的app.start函数需要一些 JSON 传递给它,它只能由服务器端模板呈现。

注意我正在使用 Browserify v2。

0 投票
1 回答
979 浏览

javascript - 浏览器化后请求模块不回调

我正在尝试使用带有 browserify 的客户端库中的“请求”npm 模块,但我遇到了麻烦。

我拥有的代码非常标准,我正在从浏览器版本向服务器发布请求,例如:

但即使我在 Chrome 的网络选项卡中看到请求成功,我也没有收到请求的回调。有没有人见过这个?我需要用客户端版本的“请求”替换 node.js 吗?

0 投票
6 回答
55064 浏览

javascript - 如何使用 browserify 获得缩小的输出?

刚开始使用browserify,但我找不到如何让它溢出缩小输出的文档。

所以我看起来像:

0 投票
2 回答
7655 浏览

backbone.js - 使用 Lodash 而不是 Underscore 和 Browserify 的主干

我现在正在尝试使用 Browserify,但我遇到了问题。

我总是使用带 Lodash 而不是 Underscore 的 Backbone,所以我为 Browserify 编写了一些 shim 脚本:

shims/lodash.js

shims/backbone.js

app.coffee

我实际上是grunt-coffeeify用来构建 Browserify 模块的,它在下面显示一个错误:

我应该改变什么才能正常工作 Backbone?提前致谢。

更新

不知何故,它适用于以下代码:

shims/lodash.js

shims/backbone.js

并在下面注释掉代码backbone-1.0.0.js

不过这看起来有些不对劲……

0 投票
2 回答
6730 浏览

javascript - 如何使用 browserify 对 npm 模块执行转换

默认情况下,browserify 不对 node_modules 中包含的模块执行转换,即没有路径。

我制作了一个快速的 github 存储库,在这里进行了说明。浏览器化的index.js文件如下所示:

testmodule看起来像这样:

使用brfs转换模块,我希望能够内联两个调用fs.readFileSync,但是当我运行时browserify index.js -t brfs -o bundle.js,只有我的主项目中的调用被内联。这是 bundle.js 结果:

0 投票
1 回答
824 浏览

node.js - nodejs Browserify node-xmpp捆绑错误:找不到模块dns

我已经使用Browserify从node-xmpp创建了一个 JS 包文件,但是当我加载我的网站时,我在 Google Chrome Javascript 控制台中收到以下错误:

我尝试使用和重建 JS 包安装浏览器请求节点包,但我仍然得到相同的错误。npm install -g browser-request

为了摆脱这个错误,我需要包含/安装什么?

注意:我使用的是带有最新版本 nodejs 和Browserify的 debian 服务器