【问题标题】:Node Keystonejs unexpected token export/import节点 Keystonejs 意外令牌导出/导入
【发布时间】:2016-06-01 20:34:03
【问题描述】:

我正在运行这个 Keystonejs 节点 webapp,我正在尝试包含我为我的 ReactNative 项目创建的一个类,但是我收到了“导出”意外令牌错误,我找不到解决方法: \,我将节点更新到 6.2.0,我只是像 node keystone 一样运行它我已经尝试过 node --harmony keystone 参数但它仍然失败,我已经尝试安装 babel-core babel-cli babel-preset-es2015 并且没有,我仍然可以创建一个函数使用(arg) => { /*body*/} 表单,虽然我什至不知道引入 xD 的是哪个版本的 ECMASCRIPT。我的类是这样声明的:export default class API { ... } API 是我的类名,我打算像这样使用它

import API from "API"; API.myMethod().then((res)=>{/*etc*/});

实际上,在获得导出之前我得到了意外的令牌“导入”,我将其更改为“要求”,然后我得到了导出错误(对不起,我正在尝试任何东西 xD) 我正在使用mac,我使用yo keystone 构建了keystone 项目,并且我已经设置了我的mongod,一切都很好,直到我尝试添加我的课程,有什么帮助吗?请:\

我还在我的类方法中使用了 asyncawait 关键字,我认为这也可能会造成麻烦 XD,特别是因为我在 package.json 文件中看到了“异步”包 :(,任何帮助都会非常感谢,谢谢:3

【问题讨论】:

    标签: javascript node.js ecmascript-6 keystonejs


    【解决方案1】:

    出现该错误是因为 NodeJS 没有在版本 6.20 中实现模块。您可以通过运行以下命令获取正在处理的功能列表:

    node --v8-options | grep "in progress"
    

    你应该看到这一行:

    --harmony_modules (enable "harmony modules" (in progress))
    

    要使用模块(importexport),您需要使用babel 将 ES2015 中的 Javascript 文件编译为 ES5。您可以在 package.json 中创建一个简单的脚本来执行此操作:

    "compile": "./node_modules/.bin/babel -d dist/ src/"
    

    脚本假定您已安装 babel

    【讨论】:

    • 嗨!非常感谢你的帮助!显然它现在正在编译,但我还有另一个问题,我想知道你是否也可以帮助我解决这个问题 xD 在我的课堂上我有多个像这样声明的静态对象 static myObject = {}; 现在我得到了一个意想不到的令牌 = (尽管将其更改为 : 可能更容易 XD)提前感谢:D
    • 我搞砸了! XD,我对babel和编译做了更多研究,发现我需要使用es2015和stage-0预设,一开始我什至不知道我在做什么,现在我知道你不知道只需安装 babel,你实际上必须用它编译你的代码 xD 它终于工作了,现在我所要做的就是设置我的工作流文件夹来编译和运行编译的代码。非常感谢您的帮助@gnerkus ! :D
    猜你喜欢
    • 2017-05-01
    • 2018-01-13
    • 2017-06-01
    • 1970-01-01
    • 2016-06-18
    • 2016-04-27
    • 2021-05-24
    • 2018-09-30
    • 1970-01-01
    相关资源
    最近更新 更多