我已按照here步骤创建了我的第一个node.js桌面应用程序,但在尝试打包应用程序后出现此错误:
/usr/local/lib/node_modules/fpm/bin/iffront:49
var getRoot = () => {
^
SyntaxError: Unexpected token )
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
运行$ fpm --help
时出现同样的错误。
我使用sudo npm install -g --save fpm
这是/usr/local/lib/node_modules/fpm/bin/iffront:49
#!/usr/bin/env node
"use strict";
process.bin = process.title = 'iffront';
var path = require('path');
var fs = require('fs');
var os = require('os');
var mout = require('mout');
var osenv = require('osenv');
var iffront = require('../lib');
var pkg = require(path.join(__dirname, '..', 'package.json'));
var cli = require('../lib/util/cli');
var updateNotifier = require('update-notifier');
var colors = require('../lib/util/colors');
var options;
var command;
var commandFunc;
var notifier;
options = cli.readOptions({
version: { type: Boolean, shorthand: 'v' }
});
if (options.version) {
process.stdout.write(pkg.version + '\n');
process.exit();
}
while (options.argv.remain.length) {
command = options.argv.remain.join(' ');
//Alias lookup
if (iffront.abbreviations[command]) {
command = iffront.abbreviations[command].replace(/\s/g, '.');
break;
}
command = command.replace(/s/g, '.');
// Direct lookup
if (mout.object.has(iffront.commands, command)) {
break;
}
options.argv.remain.pop();
}
// 在执行命令前,先判断是否有全局的安装包支持。
var getRoot = () => { //THIS IS THE LINE 49
var platform = os.platform();
var root;
if (platform === 'win32') {
root = path.parse(process.cwd()).root;
} else {
root = os.homedir();
}
return root;
};
我在Ubuntu 14.04 LTS上。
答案 0 :(得分:1)
您使用的代码是EcmaScript 6的箭头功能。 您需要更新到最新版本的节点,或者您可以使用--harmony flag运行0.10版本。
更新:要更新节点版本,您可以使用nvm https://github.com/creationix/nvm
答案 1 :(得分:1)