antvis/G2

[5.x] Unknown Component: data.sort #4425

Valar103769 posted onGitHub

const renderChart = () => {
  const chart = new Chart({
    container: chartRef.value,
    autoFit: true,
  })
  const line1 = chart
    .line()
    .data({
      type: 'inline',
      value: response.data1,
      transform: [
        {
          type: 'filter',
          callback: (item) => {
            return item.hour.trim()
          },
        },
        {
          type: 'map',
          callback: (item: any) => ({
            ...item,
            x: dayjs(item.hour, 'YYYY-MM-DD HH').format('HH'),
          }),
        },
        {
          type: 'sort',
          callback: (a, b) => a.x - b.x,
        },
      ],
    })
    .encode('x', 'x')
    .encode('y', 'new_recharge_orders')
    .encode('shape', 'smooth')

Dose I should install these peerDependencies? <img width="509" alt="image" src="https://user-images.githubusercontent.com/36926073/206424722-187c1978-f3b1-4fee-8dc6-8f5d5e3aa311.png">


@xiaoiver 看看这个 peer 的问题。

@Valar103769 sort 当前还没有加,我今天加上,暂时可以使用 custom。

posted by hustcc over 2 years ago

可以麻烦提供具体的安装运行环境么(就是使用 pnpm 嘛)?

比如下面是在 stackblitz 上配合 vite 安装运行,不会出现类似问题: https://stackblitz.com/edit/vitejs-vite-nnas74?file=package.json

posted by xiaoiver over 2 years ago

可以麻烦提供具体的安装运行环境么(就是使用 pnpm 嘛)?

比如下面是在 stackblitz 上配合 vite 安装运行,不会出现类似问题: https://stackblitz.com/edit/vitejs-vite-nnas74?file=package.json

pnpm + vite@3

你的依赖

   "@antv/g": "latest",
    "@antv/g-canvas": "latest",
    "@antv/g-svg": "latest",
    "@antv/g-webgl": "latest"

我的

 "@antv/g2": "5.0.0-beta.3",
posted by Valar103769 over 2 years ago

npm + vite + @antv/g2 正常: https://stackblitz.com/edit/vitejs-vite-ysxcvz?file=package.json,src%2Fmain.ts

的确是只有在 pnpm 下会报警告: https://github.com/pnpm/pnpm/issues/4183

我会在 G 里修改下 peerDependencies。

posted by xiaoiver over 2 years ago

npm + vite + @antv/g2 正常: https://stackblitz.com/edit/vitejs-vite-ysxcvz?file=package.json,src%2Fmain.ts

的确是只有在 pnpm 下会报警告: pnpm/pnpm#4183

我会在 G 里修改下 peerDependencies。

为什么pnpm会报错啊?

posted by Valar103769 over 2 years ago

原因就是 pnpm 对待 peerDependencies 比较严格,npm / yarn 都不会有类似警告。

我们的 @antv/g2 依赖了 @antv/g,而 @antv/g 直接依赖了 @antv/g-lite,但插件 @antv/g-plugin-xxx 对于 @antv/g-lite 是 peerDependencies,这样的依赖关系我认为是正确的。在实际安装 @antv/g2 的过程中,实际 @antv/g-lite 也早已被安装,并不是真的 “missing”。

@antv/g2 -> @antv/g
@antv/g2 -> @antv/g-plugin-xxx

@antv/g -> @antv/g-lite (dependencies)
@antv/g-plugin-xxx -> @antv/g-lite(peerDependencies)

感兴趣你可以看这一段:https://github.com/pnpm/pnpm/issues/4183#issuecomment-1008252214

missing peer shows up but project works

只是 warning 不影响使用的,如果不想看到 warning,可以通过配置让 pnpm 忽略 missing peer

posted by xiaoiver over 2 years ago

这种依赖关系, 岂不是应该必须安装@antv/g-lite, 不然应该用不了吧?

posted by Valar103769 over 2 years ago

这种依赖关系, 岂不是应该必须安装@antv/g-lite, 不然应该用不了吧?

不会的,你可以看下 node_modules 下有个 .pnpm 文件夹,该有的依赖都不会少的。所以只是 warning 而非 error,实际上也是可以运行的(如果遇到不能运行的问题,可以把报错信息发我看看)。

不过感谢你的提醒,我会把 pnpm 的这个问题放在文档里说明下。

posted by xiaoiver over 2 years ago

Fund this Issue

$0.00
Funded

Pull requests