Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[Bug / DX]: Deep imports for generateConfig are incompatible with pnpm and break module resolution

Aberta
#949 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
58/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
react, typescript

Direção de pesquisa

Comece no index.tsx principal e reproduza a falha de deep import em um workspace do pnpm com shamefully-hoist desabilitado. Está concluído quando os helpers de generateConfig, incluindo momentGenerateConfig, puderem ser importados pela API de nível superior de @rc-component/picker sem depender de deep imports.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Bug Report & DX Improvement

When using @rc-component/picker within a pnpm monorepo, the library fails at runtime with the error TypeError: generateConfig.getNow is not a function.
This occurs because the current API design requires consumers to use deep imports to access the necessary generateConfig helpers (e.g., import momentGenerateConfig from 'rc-picker/lib/generate/moment').

These deep imports are not robust and fail to resolve correctly in a strict pnpm environment due to its symlinked node_modules architecture. The bundler cannot find the module, the generateConfig prop becomes undefined, and the component crashes internally.
This issue forces users to enable shamefully-hoist=true in their .npmrc file as a workaround, which negates many of the benefits of using pnpm.

To Reproduce
Set up a pnpm workspace with a host application and a separate library package.
In the library package, import and use an antd DatePicker, which requires passing the generateConfig prop.
Import the required helper via a deep import: import momentGenerateConfig from 'rc-picker/lib/generate/moment';.
Ensure shamefully-hoist is disabled (pnpm's default).
Attempt to run the application. The build or runtime will fail because the deep import cannot be resolved.

Expected behavior
Essential helpers like generateConfig should be part of the library's public API and exportable from the main entry point, eliminating the need for fragile deep imports. This would ensure compatibility with modern, strict package managers like pnpm out of the box.

Proposed Solution & Pull Request
To solve this and improve the developer experience, the generateConfig helpers should be exported from the main index.tsx file.
This allows developers to switch from the brittle deep import:

// Old, fragile way
import momentGenerateConfig from 'rc-picker/lib/generate/moment';

To a robust, top-level import that works with any package manager:

// New, robust way
import { momentGenerateConfig } from '@rc-component/picker';
Linguagem predominante
TypeScript
Estrelas
304
Forks
345
Merge médio
19h 37min
PRs com merge (30d)
6

Preparar o ambiente

Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de react-component/picker

Todas as issues de react-component/picker

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.