javascript - 无法使用 ES6 导入语法
问题描述
我正在尝试使用 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”。这是区分大小写的
推荐阅读
- react-native - 当我调用 api 时,redux 不会等待 api 调用的响应,甚至在得到响应之前就调用失败案例
- amazon-web-services - 将数据从 AWS Elasticsearch 移动到 S3
- for-loop - BATCH FOR-loop,但从特定文件开始
- sql - 在更新语句中调用存储过程
- javascript - 如果日期小于一定天数,您如何找到日期选择器和今天日期之间的日期差异并显示错误消息
- reactjs - 是否可以在 React 中创建一个可以在状态中传递的递归函数
- visual-studio-code - 设置字符串中是否有工作区文件夹的 vscode 设置“宏”?
- ruby-on-rails - 带有gmail的heroku上的Net :: SMTPAuthenticationError ruby可以工作,但再次失败
- amazon-ec2 - 使用 terraform 启动 aws elb 实例
- unit-testing - fileNotEquals 但在日志中是同一个协程