在node.js中导入意外的保留字

我试图运行node.js后端服务器。 在Node.js文件中导入时收到错误unexpected reserved word

文件core.module.js的行是:

 'use strict'; import lodashMixins from './lodashMixins.js' ... other imports and configurations ... 

我启动简单的命令: node core.module.js

这并不罕见,但通常会发生在其他库上。 我还没有看到Node.js的解决scheme。 我应该如何解决这个问题? 我正在使用Windows Server。

编辑:我已经发现,这是ES6,但我怎么能启动它? 它看起来像应用程序的后端,但我不知道我应该使用什么命令来启动它没有错误。

import关键字是ECMAScript 2015中模块function的一部分,以及export和其他一些规范。

目前,NodeJS本身并没有实现,即使在最新的版本(v0.12.7)上,也不支持ES2015“友好”的fork iojs。

你将需要使用一个转译器来让它工作。

尽pipe存在一个--harmony_modules标志,它仍然不支持最新版本(v5.8),它不做任何事情 。 你最好的办法就是用babel,就像这里和这里所说的那样

importECMAScript 2015 (ES6) standard ,正如上面提到的Amit目前不在Nodejs中本地实现。

所以你可以使用像babel这样的es6来运行你的es6脚本

npm install babel

基于这个答案的一个例子

app.js

  import {helloworld,printName} from './es6' helloworld(); printName("John"); 

es6.js

  module.exports = { helloworld: function() { console.log('hello world!'); }, printName: function(name) { console.log(name); } } 

并在start.js中使用require hook

 require("babel/register"); var app = require("./app.js"); 

并开始你的应用程序

 node start.js 

编辑上面的答案是基于babel v5.8.23 。 对于babel >= v6

start.js中使用require hook

 require('babel-core/register'); require("./app.js"); 

此外,默认情况下转换不启用。 所以你需要安装一个preset 。 在这种情况下使用es2015

 npm install babel-preset-es2015 

并将其用在根文件夹中的.babelrc文件中

 { "presets": ["es2015"] } 

我遇到了这个问题,因为我在Visual Studio之外手动安装了这些工具。 但Visual Studio附带了现代Web开发工作stream中使用的多个开源命令行工具。 您可以告诉Visual Studio如何使用您手动安装的相同版本

转至工具 – >选项 – >项目和解决scheme – >外部Web工具

  • 在内部path之前设置全局PATH环境variables,您可以使用右上方的箭头更改顺序。

要么

  • 首先,find你已经有的Node.js安装,并在命令行中使用。 默认情况下,Node.js 0.12.7安装到“C:\ Program Files \ nodejs”。 将此条目添加到node.js目录的path,以强制Visual Studio使用该版本