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

我正在尝试运行node.js后端服务器。 我在Node.js文件中导入时收到错误node core.module.js

文件node core.module.js中的行是:

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

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

这不是罕见的错误,但通常会在其他库中发生。 我还没有看到Node.js的解决方案。 我该如何解决? 我正在使用Windows Server。

编辑:我发现它是ES6,但是我怎么启动它呢? 它看起来像是应用程序的后端,但是我不知道应该使用什么命令来正确启动它。

3个解决方案
51 votes

.babelrc.babelrc的一部分,正如上面提到的babel >= v6所述,当前尚未在Node.js中本地实现。

因此,您可以使用像.babelrc这样的transpiler来运行.babelrc脚本

.babelrc

基于此答案的示例

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中使用.babelrc

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

并以

node start.js

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

在start.js中使用.babelrc作为

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

另外,默认情况下不启用转换。 因此,您将需要安装.babelrc。在这种情况下,请使用es2015

npm install babel-preset-es2015

并在根文件夹的.babelrc文件中使用它

{
   "presets": ["es2015"]
}
Sami answered 2020-01-13T00:55:25Z
34 votes

--harmony_modules关键字与export和其他一些规范一起是ECMAScript 2015中模块功能的一部分。

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

您将需要使用编译器来使它工作。

[edit]尽管存在--harmony_modules标志,但最新版本(v5.8)仍不支持该标志,该标志什么也不做。 最好的方法是使用babel,如此处和此处所述

Amit answered 2020-01-13T00:54:17Z
2 votes

我在Visual Studio外部手动安装任何这些工具时遇到了这个问题。 但是Visual Studio附带了多个开放源代码命令行工具,这些工具在现代Web开发工作流中使用。 您可以通过以下方法告诉Visual Studio使用您手动安装的相同版本

转到工具–>选项–>项目和解决方案–>外部Web工具

  • 在内部路径之前设置全局PATH环境变量,您只需使用右上角的箭头即可更改顺序。

要么

  • 首先,找到您已经拥有的Node.js安装并在命令行中使用。 默认情况下,Node.js 0.12.7安装到“ C:\ Program Files \ nodejs”。 将此条目添加到node.js目录的路径的顶部,以强制Visual Studio使用该版本
sree answered 2020-01-13T00:56:04Z
translate from https://stackoverflow.com:/questions/32346886/unexpected-reserved-word-import-in-node-js