"Uncaught ReferenceError: require is not defined" only in some machines
"Uncaught ReferenceError: require is not defined" only in some machines
我今天开始在 Angular.js 1.5/Angular 5 项目的测试套件中遇到此错误:
HeadlessChrome 64.0.3282 (Linux 0.0.0) ERROR
An error was thrown in afterAll
Uncaught ReferenceError: require is not defined
在我的所有测试 运行 成功后,问题出现了。奇怪的是它 运行 在本地运行良好,但它在 Jenkins CI 服务器中出现故障。在其他开发人员中,只有十分之一的开发人员遇到与 Jenkins 相同的问题。
有很多其他帖子提到了同样的错误,但 none 解决了我的确切问题,例如 this, this, this,...
有人知道问题出在哪里吗?
编辑:
异常发生在 modernizr/lib/cli.js
,但没有出现堆栈跟踪:
我们也没有得到调用堆栈:
在使用 bower ls -o
查看我们项目的 bower 依赖项后,我们发现 Zurb Foundation 的瞬态依赖项存在差异。
在它起作用的地方,modernizr
被设置为 3.5.0
:
├─┬ foundation#5.5.1
│ ├── fastclick#1.0.6
│ ├── jquery#2.1.4
│ ├─┬ jquery-placeholder#2.0.9
│ │ └── jquery#2.1.4
│ ├─┬ jquery.cookie#1.4.1
│ │ └── jquery#2.1.4
│ └── modernizr#3.5.0
在没用的地方设置为3.9.0
:
├─┬ foundation#5.5.1
│ ├── fastclick#1.0.6
│ ├── jquery#2.1.4
│ ├─┬ jquery-placeholder#2.0.9
│ │ └── jquery#2.1.4
│ ├─┬ jquery.cookie#1.4.1
│ │ └── jquery#2.1.4
│ └── modernizr#3.9.0
在 bower.json
中将 modernizr
版本强制为 3.5.0
解决了问题:
"dependencies": {
...
"modernizr": "3.5.0"
}
我不完全理解为什么 modernizr 在某些计算机上被解析为不同的版本,因为在这两种情况下我们固定了相同的 Zurb Foundation 版本,但这是我们解决问题的方式。
我今天开始在 Angular.js 1.5/Angular 5 项目的测试套件中遇到此错误:
HeadlessChrome 64.0.3282 (Linux 0.0.0) ERROR
An error was thrown in afterAll
Uncaught ReferenceError: require is not defined
在我的所有测试 运行 成功后,问题出现了。奇怪的是它 运行 在本地运行良好,但它在 Jenkins CI 服务器中出现故障。在其他开发人员中,只有十分之一的开发人员遇到与 Jenkins 相同的问题。
有很多其他帖子提到了同样的错误,但 none 解决了我的确切问题,例如 this, this, this,...
有人知道问题出在哪里吗?
编辑:
异常发生在 modernizr/lib/cli.js
,但没有出现堆栈跟踪:
我们也没有得到调用堆栈:
在使用 bower ls -o
查看我们项目的 bower 依赖项后,我们发现 Zurb Foundation 的瞬态依赖项存在差异。
在它起作用的地方,modernizr
被设置为 3.5.0
:
├─┬ foundation#5.5.1
│ ├── fastclick#1.0.6
│ ├── jquery#2.1.4
│ ├─┬ jquery-placeholder#2.0.9
│ │ └── jquery#2.1.4
│ ├─┬ jquery.cookie#1.4.1
│ │ └── jquery#2.1.4
│ └── modernizr#3.5.0
在没用的地方设置为3.9.0
:
├─┬ foundation#5.5.1
│ ├── fastclick#1.0.6
│ ├── jquery#2.1.4
│ ├─┬ jquery-placeholder#2.0.9
│ │ └── jquery#2.1.4
│ ├─┬ jquery.cookie#1.4.1
│ │ └── jquery#2.1.4
│ └── modernizr#3.9.0
在 bower.json
中将 modernizr
版本强制为 3.5.0
解决了问题:
"dependencies": {
...
"modernizr": "3.5.0"
}
我不完全理解为什么 modernizr 在某些计算机上被解析为不同的版本,因为在这两种情况下我们固定了相同的 Zurb Foundation 版本,但这是我们解决问题的方式。