代码之家  ›  专栏  ›  技术社区  ›  andrey.shedko

节点-意外的标识符

  •  4
  • andrey.shedko  · 技术社区  · 6 年前

    我正在尝试使用node和一些es6/功能性的东西。
    这是两份文件。
    狗JS

    const dog = () => {
        return {
            test: (arg) => console.log("dog say: " + arg)
        }
    }
    
    export default dog;
    

    1.js段

    import dog from './dog';
    
    const d = dog()
    d.test('111');
    

    节点版本-10.4.0(节点设置良好)
    当我跑步时 node 1.js -获取错误 Unexpected identifier 指着狗。这里怎么了?

    附笔。 为了正确使用导入的函数,已经更新了1.js,但即使在更新之后,我仍然会收到错误。

    1 回复  |  直到 6 年前
        1
  •  2
  •   RobC Manuel Gonzalez    6 年前

    您的代码可以工作,它记录:

    狗说:111

    然而,ecmascript模块是 Experimental 在节点v10.4.0中。

    您需要使用 --experimental-modules 标志/选项。例如

    node --experimental-modules 1.js 
    

    另请参见有关模块文件的.mjs扩展名的说明。所以你可能需要改变 1.js 收件人:

    // Note the .mjs extension
    import dog from './dog.mjs';
    
    const d = dog()
    d.test('111');