节点5.6不了解ES6?

时间:2016-02-27 03:46:09

标签: javascript node.js typescript ecmascript-6

同时尝试使用nodenode --harmony,但我仍然会收到' SyntaxError:意外的令牌导入'错误。

我有两个文件,A.tsB.ts。这是他们的样子 -

B.ts

export class B {

}

A.ts

import {B} from './B';

console.log(new B());

结果是 -

(function (exports, require, module, __filename, __dirname) { import {B} from './B';
                                                              ^^^^^^
SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:140:18)
    at node.js:1001:3

为什么?

2 个答案:

答案 0 :(得分:0)

模块仍在进行中,我不确定尝试抛出标志是否会修复错误,但这是命令:

$ node --v8-options | grep 'in progress'
--harmony_modules (enable "harmony modules" (in progress))

答案 1 :(得分:-1)

试试https://www.npmjs.com/package/ts-node。它允许编写打字节点的打字稿。

还要确保将tsconfig.json设置为使用commonjs进行编译。 https://github.com/Microsoft/TypeScript/wiki/tsconfig.json

这是我的tsconfig.json的样子:

{
  "version": "1.0",
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "removeComments": true,
    "sourceMap": false
  }
}