我正在创建一个私有的npm包来可视化一个Vuejs项目的结构。d3似乎是可视化的最佳选择之一,但是我在脚本中包含它时遇到了一些问题。在package.json
中,我在bin
属性"bin": { "visualize": "vis.js" },
下定义了我的脚本,并导入了d3(正如我所看到的其他项目也是这样做的)
#!/usr/bin/env node
var path = require('path');
var fs = require('fs');
var d3 = require('d3');`.
但是我得到了以下错误
internal/modules/cjs/loader.js:1153
throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
^
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: <Project Path>\node_modules\d3\src\index.js
require() of ES modules is not supported.`
所以我把它改成了var d3 = import('d3');
,它可以工作,但是var d3tree = d3.tree()
语句引发了TypeError: d3.tree is not a function
在commonjs中使用d3是可能的吗?或者可能有另一个图形可视化库可以直接工作。
1条答案
按热度按时间3qpi33ja1#
import('d3')
dynamically加载d3
,您应该等待它准备就绪。另一种选择是将项目从commonjs迁移到ESM。