laravel homestead 上的错误(未找到 es2015)运行 "npm run dev"

Error (es2015 not found) running "npm run dev" on a laravel homestead

在 Windows 10 上与 Laravel 5.4 vagrant box 作斗争,试图让 laravel-mix 工作。我的最终目标是为 PWA(渐进式 Web 应用程序)设置一个 ServiceWorker 和资产缓存,并且必须承认节点、npm、mix/gulp 让我感到困惑。从我在论坛帖子中看到的情况来看,它是一种相当脆弱的技术,容易因环境的任何微小变化或变化而中断。

我在 运行 "npm run dev" 时收到此错误消息 4 次(每个编译的 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”选项要顺利得多。我也试过 yarn 而不是 npm install。

我尝试了很多东西,但似乎结合了

  • 运行 Vagrant/Homestead 在命令提示符中以管理员身份
  • 除了 --no-bin-links
  • 之外,全局安装 es2015
  • 正在重新启动 VM 以使环境更改的全局安装生效
  • 然后,npm 运行 开发

成功了。我在同一台机器上的新 laravel 项目上尝试了这个序列。希望它在我销毁我的虚拟机并重做时也能正常工作...

这应该可以解决问题。不要忘记包含一个带有

的 .babelrc
{
  "presets": ["es2015"]
}