无法通过browserify和debowerify获得外部库

时间:2014-08-01 20:46:02

标签: javascript angularjs package gulp browserify

我的手很头疼。这是我目前的设置:

  • bower获取供应商库(在这种情况下为角度)
  • 运行browserify的gulp任务
  • debowerify使bower库与browserify兼容

App.js(浏览器之前):

'use strict';

var angular = require("angular");
var Routes = require("./routes");

angular.module('MyAngularApp')
  .config(Routes);

App.js(在browser.js中浏览后/):

var angular = require("./../ext/angular/angular.js");
var Routes = require("./routes");

angular.module('MyAngularApp')
  .config(Routes);

到目前为止这么好,对吗?似乎debowerify完成了它的工作,并将angular替换为来自凉亭的angular.js的相对路径。

但是当我在浏览器命令行中调试bundle.js时,在执行前两行require行(angularRoutes)后,angular是一个空的obj,但Routes正是我在导出中设置的正确函数。

问题:为什么使用angular功能无法正确导入require

我将此放入我的package.json以使debowerify正常工作:

  "browserify": {
    "transform": [
      "debowerify"
    ]
  },

1 个答案:

答案 0 :(得分:13)

AngularJS目前不支持CommonJS,因此var angular = require("angular")无法正常工作。而不是它,只使用require('angular')

'use strict';

require('angular');
var Routes = require("./routes");

angular.module('MyAngularApp')
  .config(Routes);

Angular对象将全局加载,并且其他JS文件也可以访问它。