我正在将一些代码重构为导入的ES6模式。我正在使用node 13.7.0
。
我的package.json
文件的顶部是"type": "module"
,但是运行脚本时我会得到
错误:找不到模块 /用户/ otaviobonder / WebstormProjects / newTE / back / src / lib /已导入队列 从/Users/otaviobonder/WebstormProjects/newTE/back/src/server.js
我运行脚本node --require dotenv/config src/server.js
我不明白为什么。我在queue
中将import Queue from "./lib/Queue";
导入为server.js
,而我的Queue.js
文件具有默认导出:
import Queue from "bull";
import redisConfig from "../config/redis";
import * as Sentry from "@sentry/node";
import * as jobs from "../jobs";
Sentry.init({ dsn: process.env.SENTRY_DSN });
const queues = Object.values(jobs).map(job => ({
bull: new Queue(job.key, { redis: redisConfig }),
name: job.key,
handle: job.handle,
options: job.options
}));
export default {
queues,
add(name, data) {
const queue = this.queues.find(queue => queue.name === name);
return queue.bull.add(data, queue.options);
},
empty(name) {
const queue = this.queues.find(queue => queue.name === name);
return queue.bull.empty();
},
process() {
return this.queues.forEach(queue => {
queue.bull.process(queue.handle);
queue.bull.on("failed", (job, err) => {
Sentry.captureException(err);
});
});
}
};
感谢任何帮助,因为我已经阅读了许多有关节点和ES6的文章,并且找不到解决方案。
谢谢!