2017-08-16 60 views
0

我有一个简单的文件numer.js,我试图通过节点运行摩卡测试。使用节点意外令牌导入

然而,一个下午的搜寻让我第一关。

Numeral.js:

"use strict"; 
exports.__esModule = true; 
exports.numeral = function (id) { 
    return ""; 
}; 

test.js

import {numeral} from './numeral.js' 

var assert = require('assert'); 

describe('Array', function() { 
    describe('#indexOf()', function() { 
    it('should return -1 when the value is not present', function() { 
     assert.equal(-1, [1,2,3].indexOf(4)); 
    }); 
    }); 

}); 

我导航到文件夹(已经摩卡设置为在packages.json测试),然后运行NPM测试 。这抛出了一个:

C:\Users\matt\Documents\mocha\test\test.js:1 
(function (exports, require, module, __filename, __dirname) { import {numeral} from './numeral.js' 
                   ^^^^^^ 
SyntaxError: Unexpected token import 

我怎么会这么错?

+0

您的错误已经starrring你已经。导入关键字在任何节点版本上都不可用。您需要使用babel预设为 – Rowland

+0

尝试要求配对 – TGarrett

+0

节点不支持ES6导入,它使用'commonjs'模块语法,因此使用'require'而不是'import'。 – Cristy

回答

0

Nodejs不支持导入和导出。

因此,如果您喜欢使用导入/导出,则必须使用babel将es6代码转换为es5版本。看看这个issue github