Неожиданное использование "я" без ограничений - глобальные действия

Пытаясь написать Service Worker для моего приложения PWA, выполните эту ошибку. Я использовал образцы Google/Mozilla для сервисных работников, но, во всяком случае.

var CACHE_NAME = 'test-cache';
var urlsToCache = [
    '/'
];

self.addEventListener('install', function (event) {
    event.waitUntil(
        caches.open(CACHE_NAME)
            .then(function (cache) {
                console.log('Opened cache');
                return cache.addAll(urlsToCache);
            })
    );
});

Ответ 1

Для тех, кто все еще имеет эту проблему. Решение состоит в том, чтобы использовать window.self вместо простого " self.

Ответ 2

Добавить var self = this; или используйте this.addEventListener(...)

Ответ 3

Вы можете явно удалить self из правила no-limited-globals или просто отключить правило для строки, содержащей self используя eslint-disable-line или eslint-disable-next-line:

self.addEventListener('install', function (event) { /* eslint-disable-line no-restricted-globals */
...

Или же

/* eslint-disable-next-line no-restricted-globals */
self.addEventListener('install', function (event) {
...

Ответ 4

Я добавил следующее в начало файла serviceWorker.js

/* eslint-disable */