Javascript 尝试使用JS ES6吞咽时出现意外标记{

Javascript 尝试使用JS ES6吞咽时出现意外标记{,javascript,node.js,gulp,ecmascript-6,gulp-babel,Javascript,Node.js,Gulp,Ecmascript 6,Gulp Babel,我使用的是错误版本的软件包吗?或者你能给我发一个链接到详细的教程或代码笔吗?在这里,这种语法结构不会给我一个错误 我得到这个错误: $ gulp D:\GIT\project02\gulpfile.js:20 const { COMPATIBILITY, PORT, UNCSS_OPTIONS, PATHS } = loadConfig(); ^ SyntaxError: Unexpected token { at exports.runInThisContext (vm.

我使用的是错误版本的软件包吗?或者你能给我发一个链接到详细的教程或代码笔吗?在这里,这种语法结构不会给我一个错误

我得到这个错误:

$ gulp
D:\GIT\project02\gulpfile.js:20
const { COMPATIBILITY, PORT, UNCSS_OPTIONS, PATHS } = loadConfig();
      ^

SyntaxError: Unexpected token {
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:413:25)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at execute (C:\Documents and Settings\Administrator\Application Data\npm\node_modules\gulp-cli\lib\versioned\^4.0.0-alpha.2\index.js:36:18)
    at Liftoff.handleArguments (C:\Documents and Settings\Administrator\Application Data\npm\node_modules\gulp-cli\index.js:172:63)
    at Liftoff.<anonymous> (C:\Documents and Settings\Administrator\Application Data\npm\node_modules\gulp-cli\node_modules\liftoff\index.js:198:16)
我的节点是
v4.0.0
和我在项目中使用的gulp:

$ gulp -v
[14:15:06] CLI version 1.2.2
[14:15:06] Local version 4.0.0-alpha.2
是ES6功能,从Node v6开始正式支持。因此,您应该替换:

const { COMPATIBILITY, PORT, UNCSS_OPTIONS, PATHS } = loadConfig();
与:

或者更新您的节点版本。

是ES6功能,从节点v6开始正式支持。因此,您应该更换:

const { COMPATIBILITY, PORT, UNCSS_OPTIONS, PATHS } = loadConfig();
与:


或者更新您的节点版本。

正如Konstantin所说,Gulpfile中并非所有ES6功能都可用,因为节点必须处理这些文件。但是使用
babel require
钩子可以很容易地做到这一点

创建如下所示的Gulpfile:

'use strict';

// Compile task to ES5 on the fly!
require('babel-register');

// Require all tasks!
require('require-dir')('./tasks', { recurse: true });
并将您的任务放入
tasks
目录中。然后创建
.babelrc
文件以加载预设,例如

{
    "presets": ["node5"]
}

当您使用node v5.x时。现在您可以使用ES6功能了!:)

正如Konstantin已经说过的,Gulpfile中并不是所有ES6功能都可用,因为node必须处理这些文件。但是使用
babel require
钩子可以轻松做到这一点

创建如下所示的Gulpfile:

'use strict';

// Compile task to ES5 on the fly!
require('babel-register');

// Require all tasks!
require('require-dir')('./tasks', { recurse: true });
并将您的任务放入
tasks
目录中。然后创建
.babelrc
文件以加载预设,例如

{
    "presets": ["node5"]
}

当您使用节点v5.x时。现在您可以使用ES6功能!:)

重复问题:@user2249160不完全重复:这里的错误是因为
Gulpfile.js
本身包含解构语句。重复问题:@user2249160不完全重复:这里的错误是因为
Gulpfile.js
本身包含他在解构声明。谢谢你的回复。很有启发性!我会试试。谢谢你的回复。很有启发性!我会试试。