繁体   English   中英

无法使用ES6导入语法

[英]Can't use ES6 import syntax

我正在尝试使用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>

我在这里做错了什么?

在这种情况下,请使用

       import UnionFind from './UnionFind.js';

如果你宣布

       export class UnionFind{ ....

然后你用

import { UnionFind } from './UnionFind.js';

还要看看文件名:UnionFind.js。 您正在使用“ ./unionFind”。 这是区分大小写的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM