Как исправить 'path.inShadow - это не функция', когда вы переносите код, используя grunt / babel - PullRequest
0 голосов
/ 22 января 2019

Транспортировка кода JavaScript с использованием babel-cli через grunt. Ошибка "path.inShadow не является функцией" при передаче первого файла JavaScript, содержащего определение класса.

Я считаю, что я полностью обновил узел и все пакеты (я новичок в экосистеме узлов, поэтому, возможно, я что-то здесь упускаю).

Вот фрагмент, показывающий мои зависимости от разработчиков.

"devDependencies": {
    "@babel/core": "^7.2.2",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.3",
    "babel-preset-env": "^1.7.0",
    "grunt": "^1.0.3",
    "grunt-babel": "^8.0.0",
    "grunt-contrib-clean": "^2.0.0",
    "grunt-contrib-compress": "^1.4.3",
    "grunt-contrib-concat": "^1.0.1",
    "grunt-contrib-copy": "^1.0.0",
    "grunt-contrib-jasmine": "^2.0.3",
    "grunt-contrib-jshint": "^2.0.0",
    "grunt-contrib-rename": "^0.2.0",
    "grunt-contrib-uglify": "^4.0.0",
    "grunt-contrib-watch": "^1.1.0"
  }

Я считаю, что мой инсталлятор актуален потому что:

  • npm install ничего не делает
  • npm устаревший ничего не показывает
  • npm prune ничего не делает

версия узла 10.15.0.

На Mac, если это актуально

Транспиляция прерывается с сообщением об ошибке:

Предупреждение: path.inShadow не является функцией. Для продолжения используйте --force.

Похоже, что он компилирует файл javascript, содержащий определение класса в то время, и ни один из предыдущих файлов, которые были успешно перенесены, не содержит таких определений.

1 Ответ

0 голосов
/ 22 января 2019

Следуя предложению @ RobC.Вот ответ:

  1. Установите @babel/plugin-transform-classes

  2. и добавьте "plugins": [ "@babel/plugin-transform-classes" ] к .babelrc .

Проблема решена.

...