javascript – 未捕获ReferenceError:require未定义

前端之家收集整理的这篇文章主要介绍了javascript – 未捕获ReferenceError:require未定义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于我正在开发的项目,我一直在使用 JavaScript库的大型程序.我的代码的主要逻辑分为多个commonjs模块.我使用谷歌闭包将模块组合到我的AngularJS应用程序中使用的一个输出js文件.

我遇到的问题是试图用testacular进行测试.我收到的错误是未捕获的ReferenceError:require没有定义.正在发生,因为不像google关闭,testacular不了解commonjs模块.有几个工作可以做,但我希望使其工作,而不必重组我的代码.

>我可以重组结构模块,使我不再使用commonjs.我不喜欢这样,因为感觉像倒退一样.我希望我的代码是模块化的.
>我可以在google关闭中编译的js上运行testacular.我不介意这样做,但是我没有能够触发所有事情来处理文件更改. Testacular可以重新运行文件更改,但我还没有看到任何使谷歌关闭重新编译更改.
>最后,我可以在testacular中启用commonjs模块.理想情况下,这是我想去的方式,但可能不是最简单的方法.

有其他人遇到类似的问题吗?我打算尝试不同的事情;我只是不想要任何东西.

javaclassstreamreader.spec.js:

@H_404_12@"use strict" var JavaClassStreamReader = require('../javaclassstreamreader.js').JavaClassStreamReader; describe('javaclassstreamreader',function() { it('reader can be constructed',function() { var dataView = { byteLength : 0 }; //FIXME load dataView var reader = new JavaClassStreamReader(dataView); expect(reader.dataView).toBe(dataView); expect(reader.offset).toBe(0); expect(reader.maxOffset).toBe(0); }); });

javaclassstreamreader.js:

@H_404_12@function JavaClassStreamReader(dataView,initialOffset,maxBytesToRead) { this.dataView = dataView; this.offset = initialOffset || 0; this.maxOffset = this.offset + (maxBytesToRead || this.dataView.byteLength); } //... code trucated ...

解决方法

似乎有一个 issue与Testacular.

你能尝试以下几点:

清除npm缓存:npm缓存清理>安装另一个版本的testacular:npm install -g testacular@0.5.6

猜你在找的JavaScript相关文章