2017-07-02 60 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