2017-07-02 81 views
0

Iam接收SyntaxError:即使我的节点是v6,意外的令牌导入。 我错过了什么?如何从'can/construct /'构造导入构造;为我工作,而不是要求?SyntaxError:v6上的意外令牌导入

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" 
    } 
} 

我缺少什么?

+0

导入/导出,而且我认为它甚至不能在8中正确支持。你将需要像巴贝尔这样的翻译。 – Li357

+0

我做了npm install --save babel-cli babel-preset-node6。还有同样的错误 – Victor

+0

也,npm安装 - 保存babel没有帮助 – Victor

回答

2

Node中根本不支持ES6模块。有一些伟大的文章(one,two)围绕为什么很难决定如何实现它。

我建议通过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 

希望帮助不支持节点6