我们有使用require.js的框架 我们正在加载如下的包
define(["converter/service/utils"], function (utils) {
现在我们可以使用utils文件。
现在我们有一个新的js文件,它是browserify和uglify,如
browserify main.js | uglifyjs > bundle.js
我已经将boundle.js文件添加到我的项目中(在服务文件夹下),我想加载它但是它不起作用...
我尝试加载它如下:
define(["converter/service/bundle"], function (bundle) {
但是bundle是空的(调试它时......)
知道如何使用require.js加载browserfiy文件吗?
我知道在broswerify的文档中我们应该像
一样添加它<script src="bundle.js"></script>
但我们使用require.js 来加载模块,我可以使用其他js文件... 例如,如果我将此文件保存在我的项目中
https://rawgit.com/hugeen/lebab-experiment/master/lebab.js
我可以用require.js加载它......
编辑:
我所做的是npm init
&amp;
npm install lebab --save
创建文件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)用于验证它 与webstoram vscode进行一些项目调整。我只想验证捆绑包是否正确创建......
答案 0 :(得分:1)
您的软件包不包含允许RequireJS加载它的必要代码,因为默认情况下browserify
不包含所需的代码。获得所需结果的一种方法是使用--standalone
告诉Browserify在您的数据包周围添加UMD wrapper:
browserify --standalone someName main.js | uglifyjs > bundle.js
someName
是UMD包装器在检测到它未在CommonJS或AMD环境中运行时将使用的名称。在这种情况下,它会将您的包导出为全局空间中的符号someName
。您必须决定要在那里使用的名称。
使用UMD包装器,您的包将检测到它在AMD环境中运行(因为RequireJS使define
可用),并将调用define
以RequireJS作为模块注册自己