小编Jef*_*eff的帖子

使用 Nx 为外部库提供打字稿声明文件

这个问题已经在堆栈溢出上以多种不同的方式提出和回答,我想我已经尝试了所有这些。这个问题特定于使用 @nrwl/nx 使其工作。

具体错误是

TS7016: Could not find a declaration file for module 'libxmljs2-xsd'. '/Users/xyz/hpxml-gen/node_modules/libxmljs2-xsd/index.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/libxmljs2-xsd` if it exists or add a new declaration (.d.ts) file containing `declare module 'libxmljs2-xsd';`
Run Code Online (Sandbox Code Playgroud)

我尝试过但没有成功:

  1. 创建一个包含在其中的 global.d.ts 文件declare module 'libxmljs2-xsd'
  2. 创建 index.d.ts 文件并declare module 'libxmljs2-xsd'尝试将其放在 Nx lib 的根目录中, insidesrc和 inside src/lib。这些地点都不起作用。
  3. 修改根目录中的 tsconfig.lib.json: "include": ["**/*.ts", "**/*.d.ts"]。我也尝试过"include": ["**/*.ts", "index.d.ts"]
  4. 在根目录下创建types/index.d.ts并在根目录下添加 tsconfig.base.json"typeRoots": ["node_modules/@types", "./types"]

我意识到我可以设置 …

nrwl-nx

16
推荐指数
1
解决办法
6424
查看次数

在Casper中为PDF打印设置paperSize

在Phantom中生成PDF时,我可以像这样设置纸张大小:

page.paperSize = {
  height: '8.5in',
  width: '11in',
  orientation: 'landscape',
  border: '0.4in'
};
Run Code Online (Sandbox Code Playgroud)

然后page.render(输出)函数正确生成PDF.换句话说,大小是正确的,它有很多这样大小的页面.

我无法在Casper中使用它(我不确定它是否受支持).例如,以下内容:

var casper = require('casper').create({
    paperSize: {
      height: '8.5in',
      width: '11in',
      orientation: 'landscape',
      border: '0.4in'
    },
    logLevel: 'debug',
    verbose: true
});

....this.capture('print.pdf'); ...
Run Code Online (Sandbox Code Playgroud)

使用单个非常长的页面创建PDF.设置viewportSize不能解决问题.

有没有办法从Casperjs中访问pageSize对象?

casperjs

9
推荐指数
1
解决办法
4407
查看次数

如何使用d3生成svg客户端而不将其附加到DOM(与React.js一起使用)

我正在使用React.js构建一个应用程序,其中包含相当多的svg图表.我正在使用d3函数来帮助创建图表,比如缩放,然后使用React生成svg元素.以下是关于该方法的精彩文章:http://10consulting.com/2014/02/19/d3-plus-reactjs-for-charting/

我走这条路的部分原因在于性能 - 该应用的第一个版本太慢了.它有很多元素和很多用户交互性,都是客户端的.我正在尝试基本上在React中重新创建dc.js库.

这是一种非常有趣的方法和直观(比单独使用d3的IMO更多).建筑轴虽然乏味,但d3做得很好.我希望d3能够输出一串表示轴(也可能是其他元素)的svg元素,并将它提供给React以包含在DOM中.

我确实看到了这个问题(如何使d3.js生成svg而不绘制它?)答案是将它附加到DOM中并删除它,或者创建一个DOM片段.这些方法违反了React方法,可能会否定React的性能优势.我也看到了jsdom和phantomjs解决方案,这在我的案例中是行不通的.

d3可以生成svg而无需将其附加到DOM吗?

svg d3.js dc.js reactjs

9
推荐指数
1
解决办法
1610
查看次数

您可以在浏览器中嵌入GraalVM应用程序吗?

GraalVM具有许多令人惊讶的功能。但是我还没有看到但想做的一件事就是能够在浏览器中运行GraalVM应用程序。此类资源(使用GraalVM要做的十件事)显示了与Node.js的互操作,但未在浏览器中运行已编译的应用程序。

这可能吗?如果是这样,是否有相关文档?谢谢!

graalvm

9
推荐指数
1
解决办法
1065
查看次数

如何使用 Nx 运行单个打字稿文件

我有一个 Nx Node 项目,它使用预处理的摘要统计文件。这些统计文件需要大量处理,并且很少需要生成。然而,一旦生成,主节点应用程序就会快速运行。

我想要一个可以手动运行的预处理步骤来生成这些统计资源。我想使用 Nx 的 typescript、prettier 和 linting 支持来编写代码来生成这些统计文件。但是为每个处理步骤创建一个完整的 Node Nx 库似乎是很多不必要的基础设施。

有一个选项可以运行自定义命令:https ://nx.dev/latest/node/executors/run-commands-builder 。我想使用 Typescript 文件来执行此操作,但文档仅显示 shell 命令或组合预先存在的 Nx 命令。AFAICT 我不能只将其指向打字稿文件。

问题是:

  1. 我可以运行自定义命令来触发单个打字稿文件吗?
  2. 为生成这些统计信息的每个文件创建一个完整的 Node 库是否更惯用?

谢谢

nrwl-nx

7
推荐指数
3
解决办法
1万
查看次数

使用topojson映射美国邮政编码时出错

加载美国邮政编码topojson文件后,我在d3.js中收到错误 groupdata在这一行是未定义的:

  function bind(group, groupData) {
     var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
Run Code Online (Sandbox Code Playgroud)

错误:

Uncaught TypeError: Cannot read property 'length' of undefined 
Run Code Online (Sandbox Code Playgroud)

我调用和创建路径的代码是:

  d3.json("data/us-atlas/us-zipcodes.json", function(error, topology) {
  svg.selectAll("path")
      .data(topojson.feature(topology, topology.objects.zipcodes).features)
      .enter()
      .append("path")
      .attr("d", path)
  });
Run Code Online (Sandbox Code Playgroud)

我从这个repo生成了zipcode topojson文件:https://github.com/mbostock/us-atlas.当我在加载时检查拓扑对象时,我在topology.objects.zipcodes下看到了32893个弧.

我已经用chloropleth示例http://bl.ocks.org/mbostock/4060606成功加载了县,并使用了类似的模式.

我正在使用d3.js版本3.2.8和topojson.js版本1.2.3.

有任何想法吗?它是一个糟糕的zipcode文件还是我称错了?

d3.js topojson

5
推荐指数
1
解决办法
3402
查看次数

标签 统计

d3.js ×2

nrwl-nx ×2

casperjs ×1

dc.js ×1

graalvm ×1

reactjs ×1

svg ×1

topojson ×1