Block declarations are not yet supported outside strict mode

I am using Laravel 5.4 in my Homestead box. I installed all the npm dependencies using the npm install command. This did not cause errors.

In my webpack.min.js file , I have:

 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'); 

When I want to start npm run production , I get the following errors:

 > @ 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 

What could be the problem?

+30
webpack laravel laravel-5 mix
source share
8 answers

I had the same problem as the old version of the nodejs package on Ubuntu. I just upgraded to 7.5 and it worked.

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

Updating the node package is the solution here. Adding additional steps to update the node package, since there is no need to download, install and manage node versions yourself. You can use a module called n to update the node package on Mac / Ubuntu

 sudo npm install -gn sudo n stable 

This will install the latest stable node package. You can run

 node --version 

If you still see the old version, it may be a problem with the directory where the new package is installed. I had to create a symlink to make it work -

 sudo ln -s /usr/local/n/versions/node/9.0.0/bin/node /usr/local/bin/node 
+22
source share

I ran into the same problem with one of my test scripts in NodeJS, and I resolved my error using strict ECMAScript 5 mode.

 "use strict"; 

The line added above is at the top of my script, and it works well.

Strict mode introduces several changes to the usual JavaScript semantics:

  1. Eliminates some silent JavaScript errors by changing them to errors.

  2. Corrects errors that prevent JavaScript engines from performing optimizations: sometimes code in strict mode can execute faster than identical code in non-strict mode.

  3. Forbids some syntax that may be defined in future versions of ECMAScript.

+2
source share

This is because the latest version of NodeJS is not installed on your computer. I work in Ubuntu, so if you work with any Linux distribution, try this.

 curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash - sudo apt-get install -y nodejs 
+2
source share

Your node is not updating.

uninstall the node version, download and install the latest version.

in the project run:

 npm rebuild 

And try again:

 npm run production 

PS: If you do not want to delete the node version, download a new one and run with it.

+1
source share
0
source share

I also ran into the same problem, and I tried to execute this command, and now it works. But before that, first remove nodejs

 sudo apt-get update apt-cache policy nodejs sudo apt install nodejs 

I hope your problem is resolved.

0
source share

All Articles