@MisterTw1ster

Как подключить сторонний polyfill (classlist-polyfill) в Babel?

файл script.js обрабатывается с помощью запуска Babel командой npm run build

вот код package.json
{
  "name": "video-order",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "babel": {
    "presets": [
      [
        "@babel/preset-env",
        {
          "targets": "> 0.25%, not dead"
        }
      ]
    ]
  },
  "scripts": {
    "build": "babel script -d dist"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/phillfeel/app_for_video-order.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/phillfeel/app_for_video-order/issues"
  },
  "homepage": "https://github.com/phillfeel/app_for_video-order#readme",
  "devDependencies": {
    "@babel/cli": "^7.11.6",
    "@babel/core": "^7.11.6",
    "@babel/preset-env": "^7.11.5",
    "@babel/preset-es2015": "^7.0.0-beta.53"
  },
  "dependencies": {
    "classlist-polyfill": "^1.2.0"
  }
}


Подскажите пожалуйста куда добавить зависимость с "classlist-polyfill" чтобы Babel тоже задействовал этот пакет.
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ned4ded
Верстка, Фронтенд
Во первых, classlist-polyfill - не бабель-плагин, сл-но его нельзя добавить в бабель.

Во вторых, classlist polifill - это полифил для dom браузера, а не для js (разница в том, что dom - это апи, с которым можно взаимодействовать по средствам запуска js в браузерном окружении). Бабель полифилит js, но не dom.

В третьих, чтобы dom-полифил заработал в браузере, его нужно в этом браузере запустить, для этого его нужно импортировать перед тем скриптом, который будет этим полифилом пользоваться. Бабель - это транспайлер, он не занимается конкатенацией js-модулей в один файл, для этого нужно использовать вебпак, роллап или еще какой-либо бандлер.

Подведем итог, тебе нужно сначала настроить вебпак, который будет собирать модули js в один файл; потом импортировать в script.js полифил для браузера; потом нужно прогнать script.js через бабель, чтобы получить заполифиленный js (этим занимается, например, вебпак, он собирает скрипты в один или несколько файлов, прогоняет файлы через транспайлер).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы