在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,就像这里和这里所说的那样
import
是ECMAScript 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使用该版本