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

kd3sttzy  于 2022-10-30  发布在  Java
关注(0)|答案(4)|浏览(154)

我正在尝试运行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,但我该如何启动它呢?它看起来像应用程序的后端,但我不知道应该使用什么命令来启动它而不出错。

f0ofjuux

f0ofjuux1#

importECMAScript 2015 (ES6) standard的一部分,并且如上面提到的Amit,它当前没有在Nodejs中本地实现。
因此,您可以使用babel之类的transpiler来运行您的es6脚本
npm install babel
基于此answer的示例

应用程序.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

npm install babel-preset-es2015

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

{
   "presets": ["es2015"]
}
sxpgvts3

sxpgvts32#

import关键字是ECMAScript 2015中模块特性的一部分,与export和其他一些规范一起使用。
它目前没有在NodeJS中本地实现,即使是在最新版本(v0.12.7)上,也没有在ES2015“友好”的fork iojs中支持。
你将需要使用一个transpiler让它工作。
[edit]最新版本(v5.8)仍然不支持babel,尽管有--harmony_modules标志,也就是does nothing .最好的方法是使用babel,正如herehere所解释的

gywdnpxw

gywdnpxw3#

我在Visual Studio之外手动安装这些工具时遇到了这个问题。但是Visual Studio附带了多个开放源代码命令行工具,这些工具在现代Web开发工作流中使用。下面介绍了如何让Visual Studio使用手动安装的同一版本
转到“工具”-〉“选项”-〉“项目和解决方案”-〉“外部Web工具

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

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

hi3rlvi24#

这可能不是官方的答案,但我在搜索了“意想不到的保留字”后,偶然发现了这里。在四处探查后,我发现我的问题是,事实上,我只需要在更新了我的分支从origin / rebasing后运行一个npm install。希望这能帮助其他人谁是疯狂地恢复他们的代码,试图找出他们打破了什么!:)

相关问题