语法错误:意外令牌*

时间:2019-06-13 13:08:07

标签: javascript node.js import

我想从模块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

我尝试了不同的导入方式,但似乎无济于事。

3 个答案:

答案 0 :(得分:1)

CommonJS-样式导入应该起作用:

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

答案 1 :(得分:1)

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

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

node --experimental-modules index.mjs

答案 2 :(得分:0)

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

node --experimental-modules index.mjs
如邵传奇所说 另一种选择是使用编译器。它将为您将现代JavaScript转换为旧版本。好的选择是 TypeScript,Babel和汇总