我是否使用了某些软件包的错误版本,或者可以向我发布指向详细教程或Codepen的链接,而在该语法或语法结构中,语法没有错误吗?
我收到此错误:
$ 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)
我已经读过this question,但是
'use strict';
在我的gulpfile中,并且将const更改为let并不适合我。我的全局安装软件包:
$ npm -g ls --depth=0
C:\Documents and Settings\Administrator\Application Data\npm
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected] (git://github.com/gulpjs/gulp-cli.git#9b053ed9b7a63a10777c33b86b04ed38d7f5b840)
我的节点是我在项目中使用的
v4.0.0
和gulp:$ gulp -v
[14:15:06] CLI version 1.2.2
[14:15:06] Local version 4.0.0-alpha.2
最佳答案
正如Konstantin所说,并不是所有的ES6功能都可以在Gulpfile中使用,因为节点必须处理这些文件。但是有一种简单的方法可以通过使用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功能了! :)