[Feature Request] @welldone-software/why-did-you-render 在 umi脚手架里使用无效?

oaxa6hgo  于 4个月前  发布在  其他
关注(0)|答案(9)|浏览(65)

Background

@welldone-software/why-did-you-render 在 umi脚手架里使用无效?

index.tsx

wdyr.ts

npm run start后,发现没有任何效果?是我用错了,还是umi不支持这个插件?

Proposal

Describe the solution you'd like, better to provide some pseudo code.

Additional context

Add any other context or screenshots about the feature request here.

pinkon5k

pinkon5k1#

@welldone-software/why-did-you-render 需要配合 babel 配置 importSource: '@welldone-software/why-did-you-render', 可以通 chain webpack 修改 babel 的预设 presetReact 部分增加, 我询问下 需要变成一个 feature 吗

omtl5h9j

omtl5h9j2#

新增 plugin.ts,内容如下,

export default (api) => {
  api.modifyBabelPresetOpts((memo) => {
    memo.presetReact.importSource = 'xxx';
    return memo;
  });
}
wsewodh2

wsewodh23#

  1. create src/global.ts
// src/global.ts

import React from 'react';

if (process.env.NODE_ENV === 'development') {
  const whyDidYouRender = require('@welldone-software/why-did-you-render');
  whyDidYouRender(React, {
    trackAllPureComponents: true,
  });
}
  1. create ${projectRoot}/plugin.ts ( 和 package.json 同级 ) :
// plugin.ts

import type { IApi } from "umi"

export default (api: IApi) => {
  api.modifyBabelPresetOpts((memo) => {
    memo.presetReact.importSource = '@welldone-software/why-did-you-render'
    return memo
  })
}
v7pvogib

v7pvogib4#

@welldone-software/why-did-you-render 需要配合 babel 配置 importSource: '@welldone-software/why-did-you-render', 可以通 chain webpack 修改 babel 的预设 presetReact 部分增加, 我询问下 需要变成一个 feature 吗

需要,最好变成 .umirc.ts里的一个 配置

另外,请问 ‘ chain webpack 修改 babel 的预设 presetReact 部分增加’ 该怎么增加,不怎么会这个

kfgdxczn

kfgdxczn5#

  1. create src/global.ts
// src/global.ts

import React from 'react';

if (process.env.NODE_ENV === 'development') {
  const whyDidYouRender = require('@welldone-software/why-did-you-render');
  whyDidYouRender(React, {
    trackAllPureComponents: true,
  });
}
  1. create ${projectRoot}/plugin.ts ( 和 package.json 同级 ) :
// plugin.ts

import type { IApi } from "umi"

export default (api: IApi) => {
  api.modifyBabelPresetOpts((memo) => {
    memo.presetReact.importSource = '@welldone-software/why-did-you-render'
    return memo
  })
}

好像还是没效果

ylamdve6

ylamdve66#

umi 3 没有 global.ts ,用 chainWebpack 把脚本加到 umi entry 前面( prepend )吧。

nwnhqdif

nwnhqdif7#

umi 3 没有 global.ts ,用 chainWebpack 把脚本加到 umi entry 前面( prepend )吧。

这个该怎么加呀,不太会😅

jrcvhitl

jrcvhitl8#

import path from 'path'

export default {
  chainWebpack(config) {
    const globalPath = path.join(__dirname, 'src/global.ts')
    config.entry('umi').prepend(globalPath)
  }
}
flmtquvp

flmtquvp9#

import path from 'path'

export default {
  chainWebpack(config) {
    const globalPath = path.join(__dirname, 'src/global.ts')
    config.entry('umi').prepend(globalPath)
  }
}

每个组件需要添加类似的代码,才会输出 log
好像全局输出的配置,没有用

相关问题