Como publicar um pacote Node-API
Como publicar uma versão Node-API de um pacote juntamente com uma versão não Node-API
As etapas a seguir são ilustradas usando o pacote iotivity-node
:
Primeiro, publique a versão não Node-API:
- Atualize a versão em
package.json
. Paraiotivity-node
, a versão se torna 1.2.0-2. - Passe pela lista de verificação de lançamento (garanta que testes/demos/docs estejam OK).
npm publish
.
- Atualize a versão em
Em seguida, publique a versão Node-API:
- Atualize a versão em
package.json
. No caso deiotivity-node
, a versão se torna 1.2.0-3. Para controle de versão, recomendamos seguir o esquema de versão de pré-lançamento conforme descrito por semver.org, por exemplo, 1.2.0-napi. - Passe pela lista de verificação de lançamento (garanta que testes/demos/docs estejam OK).
npm publish --tag n-api
.
- Atualize a versão em
Neste exemplo, marcar o lançamento com n-api
garantiu que, embora a versão 1.2.0-3 seja posterior à versão não Node-API publicada (1.2.0-2), ela não será instalada se alguém optar por instalar iotivity-node
simplesmente executando npm install iotivity-node
. Isso instalará a versão não Node-API por padrão. O usuário terá que executar npm install iotivity-node@n api
para receber a versão Node-API. Para obter mais informações sobre como usar tags com npm, confira "Usando dist-tags".
Como introduzir uma dependência em uma versão Node-API de um pacote
Para adicionar a versão Node-API de iotivity-node
como uma dependência, o package.json
ficará assim:
"dependencies": {
"iotivity-node": "n-api"
}
Conforme explicado em "Usando dist-tags", ao contrário das versões regulares, as versões marcadas não podem ser endereçadas por intervalos de versão como "^2.0.0"
dentro de package.json
. A razão para isso é que a tag se refere a exatamente uma versão. Portanto, se o mantenedor do pacote optar por marcar uma versão posterior do pacote usando a mesma tag, npm update
receberá a versão posterior. Isso deve ser uma versão aceitável diferente da mais recente publicada, a dependência package.json
terá que se referir à versão exata como a seguinte:
"dependencies": {
"iotivity-node": "1.2.0-3"
}