在严格模式之外还不支持的块范围声明 – Laravel Mix

我在我的Homesteadstream浪箱里运行Laravel 5.4 。 我用npm install命令安装了所有的npm依赖项。 这并没有产生任何错误。

在我的webpack.min.js文件中,我有:

 const { mix } = require('laravel-mix'); /* |-------------------------------------------------------------------------- | Mix Asset Management |-------------------------------------------------------------------------- | | Mix provides a clean, fluent API for defining some Webpack build steps | for your Laravel application. By default, we are compiling the Sass | file for the application as well as bundling up all the JS files. | */ mix.js([ 'resources/assets/plugins/jquery-1.11.3.min.js', 'resources/assets/plugins/bootstrap/js/bootstrap.min.js', 'resources/assets/js/main.js' ], 'public/js' ); mix.combine([ 'resources/assets/plugins/bootstrap/css/bootstrap.min.css', 'resources/assets/plugins/font-awesome/css/font-awesome.css', 'resources/assets/css/styles.css' ], 'public/css/all.css'); 

当我想运行npm run production我收到以下错误:

 > @ production /home/vagrant/projects/nielsvroman > node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js /home/vagrant/projects/nielsvroman/node_modules/laravel-mix/setup/webpack.config.js:120 let extractPlugin = new plugins.ExtractTextPlugin( ^^^ SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:404:25) at Object.Module._extensions..js (module.js:432:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Module.require (module.js:366:17) at require (module.js:385:17) at requireConfig (/home/vagrant/projects/nielsvroman/node_modules/webpack/bin/convert-argv.js:96:18) at /home/vagrant/projects/nielsvroman/node_modules/webpack/bin/convert-argv.js:109:17 at Array.forEach (native) npm ERR! Linux 3.19.0-25-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "production" npm ERR! node v5.0.0 npm ERR! npm v3.3.6 npm ERR! code ELIFECYCLE npm ERR! @ production: `node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @ production script 'node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'. npm ERR! This is most likely a problem with the package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node node_modules/cross-env/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js npm ERR! You can get their info via: npm ERR! npm owner ls npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! /home/vagrant/projects/nielsvroman/npm-debug.log 

这可能是什么问题?

       

网上收集的解决方案 "在严格模式之外还不支持的块范围声明 – Laravel Mix"

我在Ubuntu上遇到了旧版本的nodejs软件包的问题。 我刚刚更新到7.5,它的工作。

 curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs 

升级节点包是这里的解决scheme。 添加节点步骤来升级节点包,因为您无需自行下载,安装和pipe理节点版本。 您可以使用名为n的模块在Mac / Ubuntu中升级您的节点包

 sudo npm install -gn sudo n stable 

这将安装最新的稳定节点包。 你可以跑

 node --version 

如果您仍然看到旧版本,则可能是安装了新软件包的目录问题。 我不得不创build一个符号链接来使其工作,

 sudo ln -s /usr/local/n/versions/node/9.0.0/bin/node /usr/local/bin/node 

您的节点没有更新。

删除你的节点版本, 下载并安装最新版本。

在项目根目录下运行:

 npm rebuild 

然后再试一次:

 npm run production 

PS:如果你不想删除你的节点版本,下载新的并运行这个。