Skip to main content

setup-project

dev

db

psql -U devuser -d botdb  # devuser / 123456mudar
SELECT COUNT(*) FROM strategies;

cd ~/dev/nextjs/qb-monorepo/apps/bot
./scripts/reset-db.sh # resetar o BD
./scripts/restore-db.sh # restaurar versão inicial do dump versionado

package.json

Resumo da Sintaxe de Versões no package.json

No package.json, as versões das dependências usam semântica de versionamento (semver). Exemplos das dependências atuais:

  • ^0.3.0 (caret): Permite atualizações automáticas para versões patch (ex.: 0.3.1 a 0.3.99) e minor (ex.: 0.4.0 a 0.9.99), mas não para major (ex.: 1.0.0+). Garante compatibilidade, mas pode causar conflitos inesperados.
  • ^0.2.0 e ^17.2.0: Mesmo comportamento, ajustado para a versão base.
  • Para fixar uma versão exata (sem atualizações automáticas), use sem símbolos: "@langchain/core": "0.3.75".

Isso ajuda a controlar atualizações via pnpm install ou pnpm update.

No projeto playground, o package.json tem "type": "module", o que indica que está usando módulos ES (ESM) no Node.js.

Em módulos ES, as importações relativas (como ../utils/helpers) precisam incluir a extensão do arquivo (por exemplo, .js) para que o Node.js possa resolver o módulo corretamente. Sem a extensão, o Node.js não consegue localizar o arquivo, resultando no erro ERR_MODULE_NOT_FOUND.

Isso é uma diferença em relação aos módulos CommonJS, onde as extensões não são obrigatórias. Se você remover "type": "module" do package.json, as importações funcionariam sem a extensão, mas isso mudaria o comportamento para CommonJS.

CommonJS é um padrão mais antigo para módulos no Node.js. Ele foi introduzido em 2009 como uma solução para modularizar código JavaScript no lado do servidor, antes da padronização oficial dos módulos ES (ESM) no ECMAScript 2015 (ES6).

  • CommonJS: Usa require() e module.exports para importar/exportar módulos. É o padrão padrão no Node.js para arquivos .js sem "type": "module" no package.json.
  • ESM (ES Modules): É o padrão mais novo e moderno, usando import e export. Ele requer "type": "module" no package.json ou arquivos .mjs, e é recomendado para projetos novos devido à melhor compatibilidade com ferramentas modernas e o ecossistema JavaScript.

Se você quiser migrar de CommonJS para ESM, pode adicionar "type": "module" ao package.json e ajustar as importações (adicionando extensões como .js), mas isso pode exigir mudanças no código. Para mais detalhes, consulte a documentação oficial do Node.js sobre módulos.

pnpm

Comandos Principais do pnpm para Gerenciar Dependências

Instalar dependências do package.json:

pnpm install

Verificar versão mais recente disponível no registro:

pnpm info <pacote> version

Exemplo: pnpm info @langchain/core version0.3.75

Listar versões instaladas no projeto:

pnpm list

Ou para um pacote específico: pnpm list @langchain/core

Atualizar dependências para versões compatíveis:

pnpm update

Adicionar nova dependência:

pnpm add <pacote>@<versão>

Exemplo: pnpm add @langchain/core@^0.3.0

Remover dependência:

pnpm remove <pacote>

Esses comandos são essenciais para manutenção. Use pnpm --help para mais opções. Para documentação completa, consulte pnpm.io.