gpt4 book ai didi

javascript - Uncaught ReferenceError : require is not defined

转载 作者:可可西里 更新时间:2023-11-01 02:46:47 28 4
gpt4 key购买 nike

对于我正在从事的项目,我一直在使用 JavaScript 库的大杂烩。我的代码的主要逻辑被分解成多个 commonjs 模块。我使用 google 闭包将模块组合成一个输出 js 文件,我在我的 AngularJS 应用程序中使用它。

我遇到的问题是尝试用睾丸进行测试。我收到的错误是 Uncaught ReferenceError: require is not defined。这是因为,与 google 闭包不同,testacular 不理解 commonjs 模块。我可以做一些变通办法,但我希望无需重构我的代码就可以让它工作。

  1. 我可以重组模块,这样我就不再使用 commonjs。我不喜欢这个,因为它感觉像是倒退了一步。我希望我的代码是模块化的。
  2. 我可以在来自 google 闭包的已编译 js 上运行 testacular。我不介意这样做,但我无法触发所有内容来处理文件更改。 Testacular 可以在文件更改时自行重新运行,但我还没有看到让 google closure 在更改时重新编译。
  3. 最后,我可以在 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与睾丸。

您可以尝试以下方法吗:

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

关于javascript - Uncaught ReferenceError : require is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com