我试图运行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的解决方案。我该怎么解决这个问题?我使用的是Windows Server。
修改:我发现它是ES6,但我怎么能启动呢?它看起来像应用程序的后端,但我不知道应该使用什么命令来启动它而没有错误。
答案 0 :(得分:50)
import
是ECMAScript 2015 (ES6) standard
的一部分,如上所述,Amit
目前尚未在Nodejs中本机实现。
因此,您可以使用babel
等转录程序来运行es6
脚本
npm install babel
基于此answer
的示例<强> 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"]
}
答案 1 :(得分:33)
import
关键字是modules feature in ECMAScript 2015的一部分,还有export
和其他一些规范。
目前还没有在NodeJS中本地实现,即使在最新版本(v0.12.7)上也没有,在ES2015&#34;友好的&#34;中也不支持它。 fork iojs。
您需要使用转换器才能使其正常工作。
尽管存在--harmony_modules
标志does nothing,但最新版本(v5.8)仍然不支持所述
答案 2 :(得分:1)
我在Visual Studio之外手动安装任何这些工具时遇到了这个问题。但Visual Studio附带了多个开源命令行工具,这些工具在现代Web开发工作流程中使用。以下是如何告诉Visual Studio使用您手动安装的相同版本
转到工具 - &gt;选项 - &gt;项目和解决方案 - &gt;外部Web工具
或