nome
Até publicarmos o pacote no repositório, o campo também poderá ser pontuado. A questão é que esse campo seja conveniente para nomear o arquivo de instalação ou, por exemplo, para exibir o nome do produto em sua página da web. Em geral, "o que você chama de iate?"
versão
A idéia principal é não esquecer de aumentar o número da versão enquanto expande a funcionalidade, corrigindo bugs ... Infelizmente, em nosso escritório, você ainda pode encontrar produtos com a versão inalterada 0.0.0. E então adivinhe que tipo de funcionalidade funciona para o cliente ...
principal
Este
campo informa qual arquivo será iniciado quando o aplicativo for iniciado (`npm start`). Se o pacote for usado como uma dependência, qual arquivo será importado ao usar nosso módulo por outro aplicativo. O diretório atual é o diretório em que o arquivo `package.json` está localizado.
E também, se, por exemplo, usarmos
vscode , o arquivo especificado neste campo será iniciado quando o depurador for chamado ou quando o comando "execute" for executado.
A extensão ".js" pode ser omitida. É uma conseqüência de todos os casos de uso possíveis, portanto, não é explicitada diretamente na documentação.
motores
Este campo contém a tupla: {"nó":
versão , "npm":
versão , ...}.
Conheço os campos "nó" e "npm". Eles determinam as versões do node.js e do npm necessárias para o nosso aplicativo funcionar. As versões são verificadas executando o comando npm install.
A sintaxe padrão para determinar a versão dos pacotes de dependência é suportada: sem um prefixo (versão única), o prefixo "~" (os dois primeiros números da versão devem corresponder) e o prefixo "^" (somente o primeiro número da versão deve corresponder). Se houver um prefixo, a versão deverá ser maior ou igual à especificada neste campo. Apenas uma lista de versões; indicação explícita mais, menos, ... etc. também funciona.
Isenção de responsabilidade "Npm install" verifica as versões especificadas nos "mecanismos" apenas se o modo "rigoroso do mecanismo" estiver ativado. Nós o incluímos para cada projeto, adicionando o arquivo .npmrc com a linha: "engine-strict = true". Era uma vez, “npm install” fazia essa verificação por padrão.
Alguns contêineres, pelo menos na documentação, escrevem que as versões adequadas serão usadas por padrão. Nesse caso, estamos falando do Azure.
Um exemplo:
"engines": { "node": "~8.11",
"ancinho" regular
E o rei está nu!
Foi acordado repetidamente com o cliente que a versão exigida do `node.js` deveria ser pelo menos 8. Quando as versões iniciais do aplicativo foram entregues, tudo funcionou. "Um dia" após a entrega da nova versão no cliente, o aplicativo parou de ser executado. Tudo funcionou em nossos testes.
O problema era que, nesta versão, começamos a usar a funcionalidade suportada apenas na versão 8 node.js. O campo "engines" não estava preenchido; portanto, ninguém havia notado antes que o cliente tinha uma versão antiga do node.js. (Serviços da Web do Azure padrão).
scripts
O campo contém uma tupla do formulário: {"script1":
script1 , "script2":
script2 , ...}.
Existem scripts padrão que são executados em uma determinada situação. Por exemplo, o script "install" será executado após a execução do "npm install". É muito conveniente, por exemplo, verificar a disponibilidade dos programas necessários para o aplicativo funcionar. Ou, digamos, para compactar todos os arquivos estáticos disponíveis no nosso serviço da Web, para que eles não precisem ser compactados em tempo real.
Nesse caso, você não pode se limitar apenas aos nomes padrão. Para executar um script arbitrário, você precisa executar "npm run
script-name ".
É conveniente coletar todos os scripts usados em um só lugar.
Um exemplo:
"scripts": { "install": "node scripts/install-extras", "start": "node src/well/hidden/main/server extra_param_1 extra_param_2", "another-script": "node scripts/another-script" }
PS A extensão ".js" pode ser omitida na maioria dos casos.