错误原因
-
在 Web Worker 中,用
self来代表 Worker 线程的全局对象,如:self.onmessage = function(e) {} -
错误信息
"Unexpected use of 'self' no-restricted-globals"为 ESLint(JavaScript 代码的静态分析工具)警告你在代码中不应使用self这个全局变量,除非它是在特定的上下文中,比如 Web Workers。
解决方案:
禁用该规则
- 简单方法:
/* eslint-disable */
// 你的代码...
/* eslint-enable */
- 通过配置禁用规则:你可以在
.eslintrc文件或 package.json 的eslintConfig字段中禁用no-restricted-globals规则:
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
],
"rules": {
"no-restricted-globals": [
"error",
"event",
"fdescribe",
// "self" // 注释掉,以禁用对 'self' 的限制
]
}
}
改为 window.self
self.addEventListener('message', function(e) {
// 处理消息
});
-
改为:
window.self.addEventListener('message', function(e) { // 处理消息 }); -
注:这个方法能避免当前问题,但可能引起其他问题

被折叠的 条评论
为什么被折叠?



