2017-08-16 88 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