捆绑后未定义应用程序

时间:2015-12-15 14:19:52

标签: javascript angularjs gulp browserify

我在我的代码上运行browserify,它如下:

import './app';

//——————————————————————————————————————————————————//
// Components
//——————————————————————————————————————————————————//

import './components/_ntToggleClass';

app就是

const app = angular.module('app', []);

components中的文件是组件。但他们正在使用前面提到的app

  app.directive('ntToggleClass', () => {
    ...    }

当我手动将所有内容放在一个文件中时,一切正常。但是在我使用了browserify后,我得到了

  

未捕获的ReferenceError:app未定义

当我查看代码时,var app和指令都在那里。

3 个答案:

答案 0 :(得分:1)

我在github上拍了一个快速样本。这将为您提供运行browserify的工作存储库。

我删除了之前的评论,因为我认为回购应该回答你的问题。

编辑:我想我刚刚得到了你的问题,你试图创建一个全局变量app,只是在其他文件中使用? 使用browserify时,这是不可能的,文件中不是required的任何变量都将返回undefined

使用browserify时,只需要您需要的任何内容。

答案 1 :(得分:1)

我的一位朋友带来了帮助;-)

我正在使用Babel(我认为很明显,因为我使用import而非require)来编码(Babelify with es2015,确切地说),所以,就像我一样有import,我也需要export

解决方案很简单,我所要做的就是放

export default app;

在我的app.js文件的末尾,然后使用

导入它
import app from '../app';

进入我的指令/组件等。

答案 2 :(得分:0)

我认为这是关于定义排序的。

const app = angular.module('app', []); 这部分应该是下面部分的顶部:

app.directive('ntToggleClass', () => {
    ...    }