SyntaxError:v6

时间:2017-07-02 04:39:51

标签: node.js canjs

我接收到SyntaxError:即使我的节点是v6,也会发生意外的令牌导入。 我错过了什么?如何从'can / construct /'创建import Construct;为我工作而不是要求?

import Construct from 'can/construct/';  // Doesnt work
var Construct = require('can-construct'); // Works for me


var Animal = Construct.extend({
    sayHi: function(){
        console.log("hi")
    }
});

var animal = new Animal()
animal.sayHi();

我知道我需要在ES6中使用import语句。但我已经拥有它了。

/usr/local/bin/node --version
v6.10.1

不确定package.json是否重要:

{
  "name": "canjstest",
  "version": "1.0.0",
  "description": "",
  "main": "canjs.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "Test",
  "dependencies": {
    "canjs": "^2.2.0"
  }
}

我错过了什么?

1 个答案:

答案 0 :(得分:2)

Node中根本不支持ES6模块。有一篇很棒的文章(onetwo)围绕着为什么很难决定如何实现它。

我建议通过babel来传输您的代码。

快速的npm脚本将是:

"build:js": "babel src --out-dir dist --presets=es2015 --plugins=transform-runtime,transform-es2015-modules-commonjs",

虽然您需要以下npm模块:

npm i babel-cli babel-plugin-transform-runtime babel-preset-es2015 --save-dev

希望有所帮助