2015-12-15 100 views
5

我对我的代码运行browserify后没有定义,它是如下:应用程序捆绑

import './app'; 

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

import './components/_ntToggleClass'; 

应用仅仅是

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

而在components文件,那么,组件。但他们使用的forementioned app

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

当我把一切都放在一个文件手工,所有的工作。但我用browserify在这之后,我得到

Uncaught ReferenceError: app is not defined

当我看到里面的代码,都var app和指令的存在。

+0

这没有帮助,对不起。 –

+1

尝试使用'require(“./ components/_ntToggleClass.js”)',它应该直接复制文件的内容。 – Scott

+0

也不起作用@ScottKaye –

回答

1

我的一个朋友带着帮助;-)

我使用巴贝尔(我还以为全髋关节置换是显而易见的,因为我用import而不是require)我的编码(准确地说,Babelify用es2015),所以,因为我有import,所以我也需要export

解决方案很简单,所有我必须做的就是把

export default app; 

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

import app from '../app'; 

到我的指令/组件等导入

+0

我正在使用require而不是导入并面临同样的问题,我将两个控制器捆绑到一个文件中,并在捆绑的第二个文件中给出应用程序未定义@Tomek –

1

我在github上打了一个快速样本。这会给你一个运行browserify的工作仓库。

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

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

使用browserify时,只需要你需要的任何东西。

+1

做得很好!令人敬畏的个人资料图片。 – Scott

0

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

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

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

尽管这样做,我宁愿避免在每个文件中写入'const app ...'。 –

相关问题