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:

"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:

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

原文链接:https://www.f2er.com/js/152643.html

猜你在找的JavaScript相关文章