SyntaxError:意外的标记=在/node_modules/hapi/lib/server.js:107内

时间:2018-02-23 17:39:55

标签: node.js version hapijs

我开始与hapijs合作并为它设置一个新的练习项目以进行更深层次的潜水。我成功设置了一次并且它工作正常但突然在运行节点server.js时开始抛出错误,如下所示。

org.eclipse.e4.ui.internal.workbench.XMLModelReconciler;
org.eclipse.e4.ui.internal.workbench.ModelReconcilingService;
org.eclipse.e4.ui.workbench.modeling.IModelReconcilingService;
org.eclipse.e4.ui.workbench.modeling.ModelDelta;
org.eclipse.e4.ui.workbench.modeling.ModelReconciler;

2 个答案:

答案 0 :(得分:1)

您可以通过以下解决方案解决此问题。

解决方案1 ​​。由于Hapi版本17.x仅支持节点v8.9.0及更高版本。因此,如果您正在使用Hapi 17.x并且您不想降级hapijs版本,那么您必须使用高于v8.9.0的节点版本。您可以在NVM(节点版本管理器)的帮助下更改节点版本。

步骤1:要安装nvm,您需要运行以下命令

/Library/WebServer/Documents/hello_hapi/node_modules/hapi/lib/server.js:107
    decorate(type, property, method, options = {}) {
                                             ^

SyntaxError: Unexpected token =
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/Library/WebServer/Documents/hello_hapi/node_modules/hapi/lib/index.js:5:16)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)

步骤2:现在安装nvm后,您可以在系统上管理多个版本的节点js,并且可以使用单个命令切换到特定版本。您可以使用以下命令安装特定版本的节点js。

npm install nvm

步骤3:最后,您现在可以使用命令nvm install v8.9.1 列出节点版本,并继续运行您需要运行的特定节点版本nvm ls

将节点版本切换到v8.9.0以上后,将不会发生此错误。

解决方案2 。如果您不想升级节点版本,则必须降级您的hapijs版本。您可以使用以下命令执行此操作。

nvm use v8.9.1

答案 1 :(得分:1)

对于任何在2020年面临此问题的人:

如果要使用hapi 19,则需要使用节点12。请注意,hapi 19是最近发布的,并非所有教程都非常适合。如果您想学习hapi,我建议您坚持使用hapi 18,直到准备好所有教材为止,因为这样便于您继续学习。

来源:Link to the issue on GitHub