【发布时间】:2018-07-06 09:37:08
【问题描述】:
TL;DR:将 d3 导入 es6 模块的记录方法失败。这样做的正确方法是什么?我的猜测是文档假设我使用了解决这些问题的工作流程
详情: d3 4.x 的自述文件说:
D3 是使用 ES2015 模块编写的。使用 Rollup、Webpack 或您喜欢的捆绑器创建自定义捆绑包。要将 D3 导入 ES2015 应用程序,请从特定 D3 模块导入特定符号:
从“d3-scale”导入 {scaleLinear};
或将所有内容导入命名空间(此处为 d3):
从“d3”导入*作为d3;
然而,当我yarn add d3 并使用 es6 脚本标签时,这不起作用:
<html>
<head>
<title>D3</title>
</head>
<body>
<script type="module">
import * as d3 from "./node_modules/d3"
</script>
</body>
</html>
加载模块脚本失败:服务器以“text/html”的非 JavaScript MIME 类型响应。根据 HTML 规范对模块脚本强制执行严格的 MIME 类型检查。
将导入替换为:
import * as d3 from "./node_modules/d3/index.js"
..给出这个错误:
未捕获的类型错误:无法解析模块说明符“d3-array”
【问题讨论】:
-
2021,我也面临同样的问题。您(或其他任何人)是否能够找到(更简单的)解决方案?
标签: d3.js es6-modules