Ошибка (es2015 не найден) при запуске npm run dev на ферме laravel

Борьба с бродячим ящиком Laravel 5.4 в Windows 10, попытка заставить работать laravel-mix. Моя конечная цель - настроить ServiceWorker и кэширование ресурсов для PWA (прогрессивного веб-приложения), и должен признать, что node, npm, mix / gulp меня озадачивают. Судя по сообщениям на форуме, это довольно хрупкая технология, которая может сломаться при любых незначительных изменениях или вариациях в среде.

Я получаю это сообщение об ошибке 4 раза при запуске "npm run dev" (один раз для каждого скомпилированного ресурса js):

Module build failed: Error: Couldn't find preset "es2015" relative to directory "/home/vagrant"
at /home/vagrant/Code/laravel-basics/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19

Вот мой package.json:

{ 
  "private": true,
  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "development2": "./node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "axios": "^0.16.2",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "bootstrap-sass": "^3.3.7",
    "cross-env": "^5.0.5",
    "font-awesome": "^4.7.0",
    "jquery": "^3.1.1",
    "laravel-mix": "^1.4.2",
    "lodash": "^4.17.4",
    "node-sass": "^4.5.3",
    "sw-precache-webpack-plugin": "^0.11.4",
    "vue": "^2.1.10",
    "webpack-rtl-plugin": "^1.5.0"
  }
}

Последней попыткой был запуск vagrant из командной строки администратора перед выполнением «rm -rf node_modules && npm install» (или его эквивалента). Мне это не нравится, но установка npm прошла более гладко, чем с опцией "--no-bin-links". Я также пробовал пряжу вместо npm install.


person flap152    schedule 28.08.2017    source источник


Ответы (2)


Это должно исправить это. Не забудьте включить .babelrc с

{
  "presets": ["es2015"]
}
person Igor    schedule 05.09.2017
comment
О да. Я тоже это сделал, но забыл об этом. Я предполагаю, что перезапуска сеанса (замазки или иного) будет достаточно, а не перезагрузки всей виртуальной машины. - person flap152; 05.09.2017

Я много чего пробовал, но кажется, что комбинация

  • Запуск Vagrant / Homestead от имени администратора в командной строке
  • Глобальная установка es2015 в дополнение к --no-bin-links
  • Перезапуск виртуальной машины, чтобы глобальная установка с изменениями среды вступила в силу
  • ТОГДА, npm run dev

сделали свое дело. Я попробовал эту последовательность в новом проекте laravel на той же машине. Надеюсь, это также сработает, когда я уничтожу свою виртуальную машину и переделаю это ...

person flap152    schedule 04.09.2017