【问题标题】:SyntaxError: Unexpected token *语法错误:意外的令牌 *
【发布时间】:2019-10-28 02:13:03
【问题描述】:

我想从模块 BodyPix 导入代码,但我不断收到以下错误消息:

import * as bodyPix from '@tensorflow-models/body-pix';
       ^

SyntaxError: Unexpected token *
    at Module._compile (internal/modules/cjs/loader.js:718:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:837:10)
    at internal/main/run_main_module.js:17:11

我尝试了不同的导入方式,但似乎没有任何效果。

【问题讨论】:

  • 你有npm installed 模块吗?
  • 你试过import bodyPix from '@tensorflow-models/body-pix'; 吗?
  • @shaochuancs 在读取模块名称之前就抛出了错误。
  • Node 是否需要一些特殊步骤来启用 ES2015 模块导入/导出?

标签: javascript node.js import


【解决方案1】:

CommonJS - 样式导入应该可以工作:

const bodyPix = require('@tensorflow-models/body-pix');

【讨论】:

    【解决方案2】:

    这是因为当前的 Node.js 不支持 import * as XXX 语法(至少在我的计算机上的 v10.15.3 中)。

    要运行这个不受支持的语句,您需要将带有模块的 Node.js 文件保存为 .mjs 扩展名并运行它:

    node --experimental-modules index.mjs

    【讨论】:

      【解决方案3】:

      Node.js 不支持此语法中的导入,或者将带有模块的文件保存为 .mjs 扩展名 并像这样运行

      node --experimental-modules index.mjs
      

      正如 shaochuancs 所说 另一种选择是使用转译器。这将为您将现代 JavaScript 转换为旧版本。 TypeScript、Babel 和 Rollup 是不错的选择。

      【讨论】:

        猜你喜欢
        • 2016-10-31
        • 1970-01-01
        • 1970-01-01
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 2017-10-07
        • 2018-02-12
        • 1970-01-01
        相关资源
        最近更新 更多