我正在尝试使用ES6导入语法,并一直遇到错误。 这是我的数据类型,
class UnionFind{
constructor(n){
this.items = n;
}
union(p, q){
}
connected(p, q){
}
find(p){
}
count(){
}
}
export default UnionFind
保存在UnionFind.js文件中
这是主叫客户端,
import { UnionFind } from './unionFind';
const readline = require('readline');
const rl = readline.createInterface({
input:process.stdin,
output:process.stdout,
terminal:false
});
uf = new UnionFind(10)
rl.on('numbers', function (line) {
arr = number.split(' ')
console.log(arr);
});
此文件保存在client.mjs文件中
这就是我的运行方式,
node --experimental-modules union-find/client.mjs
出现以下错误,
(node:13465) ExperimentalWarning: The ESM module loader is experimental.
file:///Users/mstewart/Dropbox/data-structures-algorithms-princeton/union-find/client.mjs:1
import { UnionFind } from './unionFind';
^^^^^^^^^
SyntaxError: The requested module does not provide an export named 'UnionFind'
at ModuleJob._instantiate (internal/modules/esm/ModuleJob.js:89:21)
at <anonymous>
我在这里做什么错了?
答案 0 :(得分:4)
在这种情况下,请使用
import UnionFind from './UnionFind.js';
如果您声明
export class UnionFind{ ....
然后您使用
import { UnionFind } from './UnionFind.js';
还要查看文件名:UnionFind.js。您正在使用“ ./unionFind”。这是区分大小写的