2017-06-07 20 views
-1

有人可以帮我运行一个具有ES6功能的node.js文件吗?这是我目前的工作流程:在文件 如何在mac上运行node.js ES6文件

  • npm run build

    • 保存变化---建立文件到我的src/dist文件夹
    • cd到我dist目录
    • node
    • var file = require('./index.js')
    • file.someMethod()

    然后当我改变我的方法时,我需要重复上述所有步骤。

    有谁知道一个更有效的方式来做到这一点?

    在此先感谢!

  • +0

    [?如何修改文件后重新编译的WebPack(https://stackoverflow.com/questions/34499390/how-to-recompile-webpack-after-changing-files) –

    回答

    1

    你不如果你不使用导入/导出需要什么。只需安装节点8.x,然后运行node my_file.js。 Nodejs支持大部分开箱即用的es6功能。

    如果你想使用导入/导出,那么我会建议使用打字稿:https://www.typescriptlang.org/。它具有编译器TS(静态类型ES6)到ES5。

    哦,当然都巴贝尔和打字稿有观察家模块(在文件更改自动重新编译)。我刚刚升级到 -

    +0

    喜的可能的复制节点8.0.0 ..我通过运行'node -v'来验证版本。但是,我仍然得到'SyntaxError:意外的令牌导入' –

    +0

    那就是我说的,它支持所有es6,EXCEPT导入/导出。我个人使用打字稿,并建议你也这样做,但如果你不想要,那么就使用babel。 –

    +0

    我也更喜欢打字稿tbh,但我不知道在repl中使用TS的简单方法,所以我建议babel-cli完全是因为我知道你可以将它作为repl发布。一个快速的谷歌确实会提出[this(ts-node)](https://www.npmjs.com/package/ts-node),但也许这也可以。 – Chev

    0

    这真的取决于npm run build在你的应用程序实际上不会。它运行吞咽/咕噜声吗?的WebPack?等等。如果它是webpack,那么你应该研究一下webpack-dev-server

    如果是咕噜吞下还是那么你有,你正在使用一个自定义生成链。如果您只需要支持es6功能而无需构建项目,那么您可以使用简单的东西,例如babel-cli,并从dist目录之外运行您的文件。

    $ npm i -g babel-cli 
    $ babel-node 
    > var file = require('./index.js'); 
    > file.someMethod() 
    

    通过运行babel-node你正在运行正常的节点REPL但巴贝尔需要。现在应该可以在repl中支持Es6功能,而无需编译为es5。


    您可能还想尝试更新到最新版本的节点,因为节点8具有相当广泛的es6支持。