Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在严格模式外尚不支持块作用域声明_Node.js_Laravel_Webpack_Laravel Mix - Fatal编程技术网

Node.js 在严格模式外尚不支持块作用域声明

Node.js 在严格模式外尚不支持块作用域声明,node.js,laravel,webpack,laravel-mix,Node.js,Laravel,Webpack,Laravel Mix,我正在我的宅地流浪者箱上运行Laravel 5.4。我已经用npm install命令安装了所有的npm依赖项。这没有产生任何错误 在我的webpack.min.js文件中,我有: const { mix } = require('laravel-mix'); /* |-------------------------------------------------------------------------- | Mix Asset Management |------------

我正在我的宅地流浪者箱上运行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运行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

这可能有什么问题?

您的节点未更新

删除节点版本,然后安装最新版本

在项目根运行中:

npm rebuild
然后重试:

npm run production

注:如果你不想删除你的节点版本,请下载新版本并用它运行。

我在Ubuntu上遇到了旧版本的nodejs包引起的同样问题。我刚刚更新到7.5,它正在工作

curl-sLhttps://deb.nodesource.com/setup_7.x |sudo-E bash-
sudo apt get安装-y nodejs

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

sudo npm install -g n
sudo n stable
这将安装最新的稳定节点包。你可以跑

node --version
如果您仍然看到旧版本,则可能是安装了新软件包的目录问题。我必须创建一个符号链接才能让它工作-

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

我在NodeJS中的一个测试脚本也遇到了同样的问题,我使用ECMAScript 5的严格模式解决了我的错误

"use strict";
在我的脚本顶部添加了一行,效果很好

Strict模式对普通JavaScript语义进行了一些更改:

  • 通过将某些JavaScript静默错误更改为抛出错误来消除这些错误

  • 修复了使JavaScript引擎难以执行优化的错误:有时可以使严格模式代码比非严格模式的相同代码运行得更快

  • "use strict";
    
  • 禁止将来版本的ECMAScript中可能定义的某些语法


  • 这是因为您的计算机上没有最新版本的NodeJS。 我在Ubuntu上,所以如果你在任何类型的Linux发行版上,试试这个

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

    我也面临同样的问题,我已经尝试运行这些命令,现在它正在工作但在此之前,先卸载NodeJ

    sudo apt-get update
    
    apt-cache policy nodejs
    
    sudo apt install nodejs
    
    我希望你的问题会得到解决

    $ npm run dev
    
    > @ dev /var/www/laratest2
    > npm run development
    
    
    > @ development /var/www/laratest2
    > cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
    
    /var/www/laratest2/node_modules/laravel-mix/setup/webpack.config.js:6
    let mix = require('../src/index');
    ^^^
    
    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:374:25)
        at Object.Module._extensions..js (module.js:417:10)
        at Module.load (module.js:344:32)
        at Function.Module._load (module.js:301:12)
        at Module.require (module.js:354:17)
        at require (internal/module.js:12:17)
        at requireConfig (/var/www/laratest2/node_modules/webpack/bin/convert-argv.js:97:18)
        at /var/www/laratest2/node_modules/webpack/bin/convert-argv.js:104:17
        at Array.forEach (native)
    
    npm ERR! Linux 4.15.0-45-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "development"
    npm ERR! node v4.2.6
    npm ERR! npm  v3.5.2
    npm ERR! code ELIFECYCLE
    npm ERR! @ development: `cross-env NODE_ENV=development 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 @ development script 'cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'.
    npm ERR! Make sure you have the latest version of node.js and npm installed.
    npm ERR! If you do, 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!     cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
    npm ERR! You can get information on how to open an issue for this project with:
    npm ERR!     npm bugs 
    npm ERR! Or if that isn't available, 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!     /var/www/laratest2/npm-debug.log
    
    npm ERR! Linux 4.15.0-45-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "dev"
    npm ERR! node v4.2.6
    npm ERR! npm  v3.5.2
    npm ERR! code ELIFECYCLE
    npm ERR! @ dev: `npm run development`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the @ dev script 'npm run development'.
    npm ERR! Make sure you have the latest version of node.js and npm installed.
    npm ERR! If you do, 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!     npm run development
    npm ERR! You can get information on how to open an issue for this project with:
    npm ERR!     npm bugs 
    npm ERR! Or if that isn't available, 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!     /var/www/laratest2/npm-debug.log
    
    当我运行
    npm-run-dev
    时,我得到了上面的错误,这是因为我有旧版本的nodejs

    使用以下命令更新nodejs包

    curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
    
    sudo apt-get install -y nodejs
    
    您可以使用以下方法检查版本:

    node -v
    npm -v
    
    现在运行以下命令:

    npm rebuild
    
    然后试着运行
    npm run dev
    ,这对我很有用

    输出

     DONE  Compiled successfully in 9626ms                                                                                               3:14:07 PM
    
           Asset    Size  Chunks             Chunk Names
    /css/app.css  226 kB       0  [emitted]  mix
    

    nodejs 5不支持
    let
    外部严格模式。a) 更新nodejs或b)类型
    “使用严格”在js文件的第一行,或者c)使用babel将文件传输到es5@baao,我增加了“严格使用”;到我的webpack.mix.js文件的顶部,但没有任何更改。我认为它需要在实际使用let的文件中。如果您无法更改该文件,您仍然有选项a和cAs(7月18日),不再支持nodejs 7-此链接应更新为:这是指向更新文档的链接。您可以从列表中选择首选版本。我也通过适当的升级解决了这个问题。这已经过时了,它指示人们安装节点7