问题标签 [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.
gruntjs - 如何管理多个 grunt-browserify 包中的相对路径别名?
这有点长,但我需要代码示例来说明我的困惑。之后我对以下问题的答案感兴趣:
- 我如何使用
require('module')
代替require('../../src/module')
orrequire('./module')
? - 如何
./index.js
在spec/specs.js
不重复工作的情况下重复使用?(并防止src/app.js
运行,因为它是一个入口模块)。
我已经开始了几个基于浏览器的项目,并且喜欢browserify和 grunt。但是每个项目在我的开发/学习曲线的同一点上都死掉了。一旦我将测试添加到组合中并且必须管理两个browserify捆绑包(app.js
和spec/specs.js
),整个系统就会崩溃。我会解释:
我使用grunt-browserify并设置我的初始目录:
- 使用一个入口文件 (
src/app.js
) 并执行代码遍历以捆绑所有必需的模块。 - 使用 browserify-shim 给
jquery
. - 只是别名为
jquery-ui
没有垫片(在你之后需要var $ = require('jquery')
)。 - 使用所有帮助文件和规范文件
spec/src
作为入口模块。
我将逐步完成我的配置:
快乐的
现在添加jquery:
快乐的
现在添加规格:
伤心
总结一下:我怎么...
- 使用
require('module')
代替require('../../src/module')
或require('./module')
? ./index.js
在不重复spec/specs.js
工作的情况下重复使用?(并防止src/app.js
运行,因为它是一个入口模块)。
javascript - Grunt Browserify - require.resolve 不是一个函数
我通过以下方式使用grunt-browserify :
通常它工作正常,但我仍然有一个问题,在我的代码的某些部分我使用这样的节点require
模块:
我收到以下错误:require.resolve is not a function
我试图在 grunt 任务中使用别名公开全局要求:
它确实将require
变量公开为函数,但我仍然不能使用require.resolve
ormodules
方法。
我还应该提到,在转向 grunt 之前,我正在使用Cakefile
我Browserify
的文件
并且以这种方式它工作正常,我可以使用require.resolve
,require.modules
因为出于某种原因,browserify 正在将这些方法添加到每个条目文件的开头,就像在这个gist中一样。
node.js - DDP、Node 和 Chrome Browserify
我在 chrome 扩展中使用ddp和browserify包通过 ddp 客户端与 Meteor 应用程序通信。
但是,当我实例化连接时,我遇到了错误:
这发生在创建一个new Websocket(uri='ws://localhost:3000/websocket', protocols={})
我在如何通过 DDP (WebSocket) 协议访问meteor.com 上托管的应用程序中看到类似的错误?,但他们不得不将端口更改为 443 的解决方案不起作用。
有人有解决方法吗?
javascript - Browserify with jQuery >= 2 产生“jQuery 需要一个带有文档的窗口”
我正在使用 browserify 使用 CommonJS 样式的依赖项来捆绑我的前端 javascript。例如,我有:
但是,当 browserify 捆绑依赖项时,我遇到以下控制台错误:
查看 jQuery 代码,我发现它正在尝试this
用于全局window
.
由于 browserify 包装了所有依赖项,this
因此是一个object
,而不是window
.
有趣的是 jQuery >= 2 应该是 CommonJS 兼容的。但是,问题在于 browserify 如何包装依赖项。有没有人解决过这个问题?
javascript - 使用 Browserify 运行脚本,无需先构建过程
我阅读了许多关于http://javascriptplayground.com/blog/2013/11/backbone-browserify/的文章,并且总是有如下步骤Browserify
:
这似乎是在您在浏览器中运行脚本以查看其工作原理之前完成的。每次我更改代码时,有没有办法不必进行构建?类似于...的define()
功能requirejs
javascript - 如何浏览 Node.js WebSocket 服务器?
使用node-chromify中的示例,我设法在客户端运行了一个 Node.js Http 服务器 - 在 Chrome 浏览器中。
然后我尝试对 WebSocket 服务器做同样的事情。不幸的是我失败了。我想我尝试了来自 Github 的大多数流行的 WebSocket 库(npm 模块)。
虽然它们在配置中运行良好:
情景
到目前为止对我来说仍然遥不可及。
在我的尝试中,我通过调用命令尝试了相同的方法:
但是当我将生成的捆绑文件包含到 html 页面中时,我总是会遇到一些关于缺少对象定义等的严重错误。换句话说,上面的命令似乎没有像服务器代码在运行时所期望的那样捆绑所有内容。
我应该在通话期间使用不同的开关/选项browserify
吗?
也许根本不可能browserify
?对于客户端可以,但对于服务器不是...
我意识到将 WebSocket 的东西迁移到客户端比常规的 npm 模块要复杂得多。
browserify v. 2.36.1
Node 0.10.22
ruby-on-rails-4 - 带有 ES6 模块和 browserify 的 Rails 资产管道
我正在尝试使用 Rails 资产管道实现一些东西,但事实证明这比我希望的要难。
为了清晰地构建应用程序,我计划为 javascript 使用模块系统。为此,我想使用 CommonJS 模块,但我想使用新的 ES6 语法来编写它们以实现未来的兼容性。
我找到了资产管道的 ES6 模块转译器扩展,效果很好,但这只会将其转换为 CommonJS 格式。我仍然需要将它放入浏览器可以理解的 JS 中。为此,我正在考虑使用 Browserify,但我的问题在于将这两者结合起来。
模块转译器以每个文件为基础工作,但 browserify 通过检查所有需要的文件来工作。问题是browserify不能使用原始文件,因为它们不是CommonJS格式,它们是ES6,所以它需要转译版本,但因为这发生在管道中,我不能将browserify指向文件。
有没有办法解决这个问题?
node.js - 为在 phantomjs 中的 browserify 包上运行的 jasmine 测试生成伊斯坦布尔代码覆盖率报告(通过 grunt)
标题真的说明了一切。尽管在互联网上搜索,我还没有找到一个解决这个问题的例子。
以下是一些未遂事件
- https://github.com/amitayd/grunt-browserify-jasmine-node-example - grunt、browserify 和 jasmine
- https://github.com/gotwarlost/istanbul/issues/59#issuecomment-18799734 - browserify 和 istanbul
这是我正在进行的代码https://github.com/wheresrhys/on-guard/tree/browserify(注意它是“browserify”分支 - Gruntfile.js 有点乱,但很快就会整理出来)。我的初步调查console.log
表明,bundle.src.js
页面中正在以某种方式加载,但是当测试运行(并通过!)时,其中的代码bundle.src.js
没有运行,所以我觉得这可能是一个别名问题......仅限于 phantomjs,因为当我在 chrome 中打开 specrunner 时,代码正在运行。
javascript - socket.io 客户端是否必须存在于全局范围内?
我正在使用一个M
由 browserify 创建的模块(比如 ),它包括 socket.io 客户端作为依赖项。M
在 AMD 应用程序中使用。Inside said app, when M
issues a connect call to the socket client, and when the chosen transport is jsonp-polling, attempting to execute the jsonp callback throws a ReferenceError: io is undefined
. 这对我来说非常有意义,因为io
它不是全局的,而是包裹在 moduleM
中。
所以我的问题是,是否io
必须存在于全球范围内?有没有办法使这项工作能够在不添加io
到全局范围的情况下访问回调数组?
免责声明- 我很感激我没有提供任何示例代码,但我正在努力形成一个易于实现和运行的合适的模拟示例。如果这个问题真的没有任何意义,那么请告诉我,我会看看我是否可以把一些东西放在一起,但如果有人认为他们可以回答它,或者在没有看到任何代码的情况下指出我正确的方向,请做!
javascript - 在 browserify 中将 window 传递给 this
我的依赖项之一使用以下内容将窗口传递给它的关闭
暂时我可以把它改成更合理的东西,这样它就不会破坏浏览器化,但是有没有一些方法可以this
在浏览器化模块中强制一个值?