同时使用 `import` 和 `require` 加载模块时出现语法错误

问题描述 投票:0回答:1

嗨,我从 Node Js 开始,并根据文档在这里尝试了代码。我相应地做了所有事情,但出现了以下错误。

const Bumblebee = require('bumblebee-hotword');
    ^

SyntaxError: Identifier 'Bumblebee' has already been declared
at Loader.moduleStrategy (node:internal/modules/esm/translators:147:18)
at async link (node:internal/modules/esm/module_job:48:21)

这是index.js代码

import Bumblebee from "bumblebee-hotword";

const Bumblebee = require('bumblebee-hotword');

let bumblebee = new Bumblebee();

// set path to worker files
bumblebee.setWorkersPath('/bumblebee-workers');

// add hotword
bumblebee.addHotword('jarvis');

// set sensitivity from 0.0 to 1.0
bumblebee.setSensitivity(1.0);

bumblebee.on('hotword', function(hotword) {
    // YOUR CODE HERE
    console.log('hotword detected:', hotword);
});

bumblebee.start();

这是package.json

  {

  "name": "Hotword_template",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",

"dependencies": {
  "bumblebee-hotword": "^0.2.1"
}
}

所需的目录“bumblebee-workers”也在同一目录中。 我不知道我哪里做错了,非常感谢任何帮助!!

node.js syntax-error
1个回答
1
投票

看这两行,您正在导入并使用同名的常量变量。

import Bumblebee from "bumblebee-hotword";

const Bumblebee = require('bumblebee-hotword');

更改 const 变量的名称可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.