使用require.js加载browserify的boundle.js

我们有与require.js一起工作的框架,我们正在加载如下的包

define(["converter/service/utils"], function (utils) { 

现在我们可以使用utils文件。

现在我们有一个新的js文件,这是一个浏览和uglify像

 browserify main.js | uglifyjs > bundle.js 

我已经将boundle.js文件添加到我的项目(服务文件夹下),我想加载它,但它不工作…

我尝试加载它,如下所示:

  define(["converter/service/bundle"], function (bundle) { 

但捆绑是空的(而debugging它…)

任何想法如何使用require.js加载browserfiy文件?

我知道在博客文档中我们应该加上它

 <script src="bundle.js"></script> 

我们使用require.js来加载模块,我可以这样做与其他js文件…例如,如果我保存在我的项目中的这个文件

https://rawgit.com/hugeen/lebab-experiment/master/lebab.js

我可以加载require.js …

编辑:

我所做的是npm init

 npm install lebab --save 

创build文件main.js并把下面的代码

 var lebab = require("lebab"); 

并运行命令

 browserify --standalone someName main.js | uglifyjs > bundle.js 

它成功完成

bundle.js文件放在converter/service文件夹下

并试图要求如下:

 define(["converter/service/bundle"], function (bundle) { 

或者也是

 define(["converter/service/someName"], function (bundle) { 

它不工作…我在这里错过了什么?

EDIT2

由于我们使用我们的工具(包装require.js)很难跟踪正确的错误,有一些工具(require.js),我用它来validation它与webstoram vscode与一些项目的调整。 我只是想validation捆绑被创build了正确…

       

网上收集的解决方案 "使用require.js加载browserify的boundle.js"

你的bundle不包含允许RequireJS加载它的必要的代码,因为默认情况下, browserify不包括那个。 获得所需结果的一种方法是使用--standalone来告诉Browserify在您的包中放置一个UMD包装 :

 browserify --standalone someName main.js | uglifyjs > bundle.js 

someName是UMD包装器所使用的名称,如果它检测到它不在CommonJS或AMD环境中运行。 在这种情况下,它将在全局空间中将您的包导出为符号someName 。 你必须决定你想用什么名字。

使用UMD包装器,你的包会检测到它正在AMD环境中运行(因为RequireJS使得define可用),并且将调用define来以RequireJS作为模块注册自己。