Angular 在咖啡上使用 d3plus 扼流圈

Angular using d3plus chokes on coffee

我想在 Angular 项目中使用 d3plus。主要是因为它巧妙的文字环绕。

我制作了一个 d3.lib.ts 文件:

export * from 'd3';
export * from 'd3plus';

'd3plus' 在 IntelliJ 中是红色的。我已经通过 npm 安装了 d3、d3plus、@types/d3 和 @types/d3plus。这可能有点矫枉过正,但肯定这里的东西应该有用。

构建时,我得到:

ERROR in ./node_modules/d3plus/src/init.coffee 1:0
Module parse failed: Unexpected character '#' (1:0)
You may need an appropriate loader to handle this file type.
> ###*
| # @class d3plus
| ###
ERROR in ./node_modules/d3plus/src/libs.coffee 1:26
Module parse failed: Unexpected token (1:26)
You may need an appropriate loader to handle this file type.
> window.d3       = require "d3"
| window.topojson = require "topojson"

似乎 Angular 正在尝试解释 coffeescript,但我不知道为什么要这样做。为什么不简单地忽略它并使用其上方文件夹中的 d3plus.js?

我如何让它工作?这是正确的方法吗?

试试 npm i d3plus@next ,它会安装剩余的包。

我会用 - 我使用 d3plus 作为文本换行功能来​​说明我的回答。我无法使用某些博客中发布的 d3plus.textwrap 函数。我从网上的信息推断,在d3 v4中必须使用单独的d3plus包。以textwrap为例,我们必须使用d3plus-text包,然后访问textwrap函数如下:

new d3plus-text.textWrap()...