As reuniões estão atualmente realizadas na plataforma Matrix.org.
As atas da reunião podem ser encontradas em reuniões.jquery.org.
A versão mais recente do JQuery está disponível em https://jquery.com/download/.
Versão | Filial | Status |
---|---|---|
4.x | principal | Beta |
3.x | 3.x estável | Ativo |
2.x | 2.x estável | Inativo |
1.x | 1.x estável | Inativo |
Depois que a final do 4.0.0 for lançada, a filial 3.x continuará recebendo atualizações por um tempo limitado. As ramificações 2.x e 1.x não são mais suportadas.
O suporte comercial para versões inativas está disponível na Herodevs.
Saiba mais sobre o suporte à nossa versão.
No espírito do desenvolvimento de software de código aberto, o jQuery sempre incentiva a contribuição do código da comunidade. Para ajudá -lo a começar e antes de entrar no código de escrita, leia minuciosamente estas importantes diretrizes de contribuição:
Os problemas/PRs do GitHub são geralmente referenciados via gh-NUMBER
, onde NUMBER
é o ID numérico do problema/PR. Você pode encontrar esse problema/PR em https://github.com/jquery/jquery/issues/NUMBER
.
O JQuery usou um rastreador de bug diferente - baseado no Trac - no passado, disponível em bugs.jquery.com. Ele está sendo mantido no modo somente leitura, para que se referindo a discussões anteriores seja possível. Quando a fonte do jQuery faz referência a um desses problemas, ele usa o trac-NUMBER
padrão, onde NUMBER
é o ID numérico do problema. Você pode encontrar esse problema em https://bugs.jquery.com/ticket/NUMBER
.
Para construir o jQuery, você precisa ter o mais recente Node.js/npm e Git 1.7 ou posterior. As versões anteriores podem funcionar, mas não são suportadas.
Para o Windows, você deve baixar e instalar o git e o node.js.
Os usuários do MacOS devem instalar o homebrew. Depois que o Homebrew for instalado, execute brew install git
para instalar o Git e brew install node
para instalar o Node.js.
Os usuários do Linux/BSD devem usar seus gerentes de pacotes apropriados para instalar o git e o node.js ou construir a partir da fonte se você balançar dessa maneira. Equírio.
Primeiro, clone o repo JQuery Git.
Em seguida, insira o diretório jQuery, instale dependências e execute o script de construção:
cd jquery
npm install
npm run build
A versão construída do jQuery será colocada no diretório dist/
, juntamente com uma cópia minificada e um arquivo de mapa associado.
Para construir todas as variantes do jQuery, execute o seguinte comando:
npm run build:all
Isso criará todas as variantes que o jQuery inclui em um lançamento, incluindo jquery.js
, jquery.slim.js
, jquery.module.js
e jquery.slim.module.js
ao longo de seus arquivos e fontes de origem associados.
jquery.module.js
e jquery.slim.module.js
são módulos ecmascript que exportam jQuery
e $
como exportações nomeadas são colocadas no dist-module/
em vez do diretório dist/
.
O script de construção pode ser usado para criar uma versão personalizada do jQuery que inclua apenas os módulos necessários.
Qualquer módulo pode ser excluído, exceto core
. Ao excluir selector
, ele não é removido, mas substituído por um pequeno invólucro em torno querySelectorAll
nativo (veja abaixo para obter mais informações).
Para ver a lista completa das opções disponíveis para o script de construção, execute o seguinte:
npm run build -- --help
Para excluir um módulo, passe seu caminho em relação à pasta src
(sem a extensão .js
) para a opção --exclude
. Ao usar a opção --include
, o padrão inclui é descartado e uma compilação é criada apenas com esses módulos.
Alguns módulos de exemplo que podem ser excluídos ou incluídos são:
AJAX : Toda a funcionalidade AJAX: $.ajax()
, $.get()
, $.post()
, $.ajaxSetup()
, .load()
, transportes e ajax shorthands como .ajaxStart()
.
AJAX/XHR : O XMLHTTPREQUEST AJAX TRANSPORTE.
AJAX/SCRIPT : O <script>
AJAX SOMENTE TRANSPORTE; usado para recuperar scripts.
Ajax/jsonp : o JSONP Ajax Transport; Depende do transporte de Ajax/Script.
CSS : O método .css()
. Também remove todos os módulos, dependendo do CSS (incluindo efeitos , dimensões e deslocamento ).
CSS/SHOWHIDE : não animado .show()
, .hide()
e .toggle()
; pode ser excluído se você usar classes ou chamadas explícitas .css()
para definir a propriedade display
. Também remove o módulo de efeitos .
Despregado : métodos documentados como depreciados, mas ainda não removidos.
Dimensões : os métodos .width()
e .height()
, incluindo variações inner-
e outer-
.
Efeitos : o método .animate()
e suas atalho como .slideUp()
ou .hide("slow")
.
Evento : os métodos .on()
e .off()
e toda a funcionalidade de eventos.
Evento/gatilho : os métodos .trigger()
e .triggerHandler()
.
Offset : o .offset()
, .position()
, .offsetParent()
, .scrollLeft()
e .scrollTop()
.
WRAP : Métodos .wrap()
, .wrapAll()
, .wrapInner()
e .unwrap()
.
núcleo/pronto : exclua o módulo pronto se você colocar seus scripts no final do corpo. Qualquer retorno de chamada pronto com jQuery()
será simplesmente chamado imediatamente. No entanto, jQuery(document).ready()
não será uma função e .on("ready", ...)
ou similar não será acionado.
adiado : exclua jQuery.deferred. Isso também exclui todos os módulos que dependem de diferidos, incluindo Ajax , efeitos e filas , mas substitui o núcleo/pronto por núcleo/pronto-não-deferido .
Exportações/Global : exclua o anexo de variáveis globais de jQuery ($ e jQuery) à janela.
Exportações/AMD : exclua a definição da AMD.
Seletor : o mecanismo seletor de jQuery completo. Quando este módulo é excluído, ele é substituído por um mecanismo seletor rudimentar com base no método de querySelectorAll
do navegador que não suporta extensões de seletor de jQuery ou semântica aprimorada. Consulte o arquivo Selector-native.js para obter detalhes.
NOTA : Excluindo o módulo selector
completo também excluirá todas as extensões de seletor de jQuery (como effects/animatedSelector
e css/hiddenVisibleSelectors
).
Você pode definir o nome do módulo para a definição AMD da JQuery. Por padrão, ele está definido como "jQuery", que toca muito bem com plugins e bibliotecas de terceiros, mas pode haver casos em que você deseja mudar isso. Passe para o parâmetro --amd
:
npm run build -- --amd= " custom-name "
Ou, para definir anonimamente, deixe o nome em branco.
npm run build -- --amd
O nome padrão do arquivo jQuery construído é jquery.js
; É colocado sob o dist/
Diretório. É possível alterar o nome do arquivo usando --filename
e o diretório usando --dir
. --dir
é relativo à raiz do projeto.
npm run build -- --slim --filename= " jquery.slim.js " --dir= " /tmp "
Isso criaria uma versão fina do jQuery e a colocaria no tmp/jquery.slim.js
.
Por padrão, o jQuery gera um arquivo JavaScript regular de script. Você também pode gerar um módulo ECMAScript exportando jQuery
como exportação padrão usando o parâmetro --esm
:
npm run build -- --filename=jquery.module.js --esm
Por padrão, o jQuery depende de uma window
global. Para ambientes que não possuem um, você pode gerar uma construção de fábrica que expõe uma função que aceita window
como um parâmetro que você pode fornecer externamente (consulte README
do pacote publicado para obter instruções de uso). Você pode gerar tal fábrica usando o parâmetro --factory
:
npm run build -- --filename=jquery.factory.js --factory
Esta opção pode ser misturada com outras pessoas como --esm
ou --slim
:
npm run build -- --filename=jquery.factory.slim.module.js --factory --esm --slim --dir= " /dist-module "
Crie uma compilação personalizada usando npm run build
, listando os módulos a serem excluídos. Excluindo um módulo de nível superior também exclui seu diretório correspondente de módulos.
Exclua toda a funcionalidade do Ajax :
npm run build -- --exclude=ajax
A exclusão de CSS remove os módulos, dependendo do CSS: efeitos , deslocamento , dimensões .
npm run build -- --exclude=css
Exclua um monte de módulos ( -e
é um pseudônimo para --exclude
):
npm run build -- -e ajax/jsonp -e css -e deprecated -e dimensions -e effects -e offset -e wrap
Há um pseudônimo especial para gerar uma construção com a mesma configuração que a construção oficial do JQuery Slim:
npm run build -- --filename=jquery.slim.js --slim
Ou, para criar a construção slim como um módulo ESM:
npm run build -- --filename=jquery.slim.module.js --slim --esm
Construções personalizadas não oficiais não são testadas regularmente. Use -os por sua conta e risco.
Verifique se você tem as dependências necessárias:
npm install
Inicie npm start
a construir automaticamente a jQuery enquanto você trabalha:
npm start
Execute os testes de unidade com um servidor local que suporta PHP. Certifique -se de executar o site no diretório raiz, não o diretório "teste". Nenhum banco de dados é necessário. Os servidores locais PHP pré-configurados estão disponíveis para Windows e Mac. Aqui estão algumas opções:
Como o código -fonte é tratado pelo sistema de controle de versão Git, é útil conhecer alguns recursos usados.
Se você deseja limpar seu diretório de trabalho de volta ao status do upstream, os seguintes comandos podem ser usados (lembre -se de que tudo o que você trabalhou foi depois disso):
git reset --hard upstream/main
git clean -fdx
Para filiais de recursos/tópicos, você sempre deve usar a bandeira --rebase
para git pull
, ou se geralmente estiver lidando com muitos temporários "para estar em uma solicitação de puxão do github" Ramificações, execute o seguinte para automatizar isso:
git config branch.autosetuprebase local
(Veja man git-config
para obter mais informações)
Se você estiver obtendo conflitos de mesclagem ao se fundir, em vez de editar os arquivos conflitantes manualmente, poderá usar o recurso git mergetool
. Embora a ferramenta padrão xxdiff
pareça horrível/antiga, é bastante útil.
A seguir, são apresentados alguns comandos que podem ser usados lá:
Ctrl + Alt + M
- Automerge o máximo possívelb
- Salte para o próximo conflito de mesclagems
- mude a ordem das linhas conflitantesu
- desfazer uma mesclagemleft mouse button
- marque um bloco para ser o vencedormiddle mouse button
- marque uma linha para ser o vencedorCtrl + S
- SalvarCtrl + Q
- Saia expect ( numAssertions ) ;
stop ( ) ;
start ( ) ;
Nota : A eventual adição de um argumento de Qunit para parar/iniciar é ignorada nesta suíte de teste, para que o início e a parada possa ser passada como retorno de chamada sem se preocupar com seus parâmetros.
ok ( value , [ message ] ) ;
equal ( actual , expected , [ message ] ) ;
notEqual ( actual , expected , [ message ] ) ;
deepEqual ( actual , expected , [ message ] ) ;
notDeepEqual ( actual , expected , [ message ] ) ;
strictEqual ( actual , expected , [ message ] ) ;
notStrictEqual ( actual , expected , [ message ] ) ;
throws ( block , [ expected ] , [ message ] ) ;
Consulte Test/Data/Testinit.js.
q ( ... ) ;
Exemplo:
q ( "main" , "foo" , "bar" ) ;
=> [ div # main , span # foo , input # bar ]
t ( testName , selector , [ "array" , "of" , "ids" ] ) ;
Exemplo:
t ( "Check for something" , "//[a]" , [ "foo" , "bar" ] ) ;
fireNative ( node , eventType ) ;
Exemplo:
fireNative ( jQuery ( "#elem" ) [ 0 ] , "click" ) ;
url ( "some/url" ) ;
Exemplo:
url ( "index.html" ) ;
=> "data/index.html?10538358428943"
url ( "mock.php?foo=bar" ) ;
=> "data/mock.php?foo=bar&10538358345554"
Alguns testes podem exigir um documento que não seja o equipamento de teste padrão, e estes podem ser executados em um iframe separado. O código de teste e as afirmações reais permanecem nos principais arquivos de teste da JQuery; Somente a marcação mínima de teste de teste e o código de configuração devem ser colocados no arquivo iframe.
testIframe ( testName , fileName ,
function testCallback (
assert , jQuery , window , document ,
[ additional args ] ) {
...
} ) ;
Isso carrega uma página, construindo um URL com o nome do arquivo "./data/" + fileName
. A página IfRamed determina quando o retorno de chamada ocorre no teste, incluindo o script "/test/data/iframetest.js" e chamando startIframeTest( [ additional args ] )
quando apropriado. Muitas vezes, isso será após o documento pronto ou window.onload
.
O testCallback
recebe o objeto Quunit assert
criado pelo testIframe
para este teste, seguido pelo jQuery
, window
e document
global do iframe. Se o código do IFRAME passar algum argumento a startIframeTest
, ele seguirá o argumento document
.
Se você tiver alguma dúvida, sinta -se à vontade para perguntar no fórum jQuery core em desenvolvimento ou em #jquery on libera.