Um pacote é :
a) uma pasta
contendo um programa descrito por um arquivo package.json
b) um tarball compactado
contendo (a)
c) uma URL
que resolva para (b)
d) um <nome>@<versão>
que aponta para (c)
e) um <name>@<tag>
que aponte para (d)
f) um <nome>
que é o 'latest' tag satisfazendo (e)
g) uma URL git
que quando clonada resultado resultada em (a)
Mesmo que você nunca publique seu pacote, você pode ter bastante beneficios usando o npm
se você deseja escrever um programa node(a)
O arquivo package.json fica na raiz do seu projeto. É basicamente toda a interface.
name
: Deve ser uma string que identifica seu projeto. Não precisa necessariamentecasar
com o sue nome de repositorio no github.version
: A versão do seu pacote.engines
: Espefica a versão donode
(ou qualquer outro) que seu programa executa.author
: Seu nome , email , créditos.scripts
:main
: Se você tem um modulo único que serve como ponto de entrada para seu programa. (ex:foo
-> require('foo')) então você deve incluri ele aqui.directories
: Este é um hash de sub pastas. Os melhores para serem incluidos sãolib
edoc
mas se você especificar uma pasta cheia deman-pages
inman
elas serão instaladas como esses.
Você pode usar npm init
na raiz do seu pacote para gerar um package.json
base para começar o desenvolvimento.
Use um arquivo .npmignore
para manter arquivos temporarios e inutéis fora do seu pacote. Se não existir um .npmignore
mas sim um .gitignore
, o npm vai ignorar as coisas que estiverem nos padrões do .gitignore
.
Se você deseja incluir algo que está incluido em seu arquivo .gitignore
, você pode criar um arquivo .npmignore
vazio para sobrescrever ele.
Por padrão, os seguintes arquivos e pastas são ignorados , entõ não é necessário adicionar-los ao .npmignore
:
.*.swp
._*
.DS_Store
.git
.hg
.lock-wscript
.svn
.wafpickle-*
CVS
npm-debug.log
Adicionalmente, tudo que estiver em npm_modules
sera ignorado , exceto para as bundled dependencies
. npm
automaticamente gerencia isto para você, então não se preocupe em adicionar npm_modules
ao seu arquivo .npmignore
.
Os seguintes arquivos nunca são ignorados, então adicionar-los ao .npmignore
não faz sentido :
package.json
README.*
npm link
é destinado para instalar um pacote em desenvolvimento e ver as mudanças em tempo real sem a necessidade de ter que reinstalar-lo.
Você precisar re-linkar or npm rebuild -g
para atualizar os pacotes compilados, obviamente.
Isso é importante
Se você não consegue instalar-lo localmente,você terá problemas para publicar-lo. Ou pior ainda, você irá publicar um pacote quebrado ou sem sentido.
Na pasta raiz do seu pacote execute : npm install . -g
, isto irá te mostrar se está funcionando. Se você preferir , criar um link simbolico para seu pacote, para que aponte para seu diretorio de trabalho, execute isso : npm link
.
Use npm ls -g
para verificar se ele está lá. Para testar uma instalação local, vá para outra pasta e execute npm install /mypackage/folder/myPackage
, em seguida vá execute o node-repl
e tente usar : require('myPackage')
para trazer o modulo principal do seu pacote.
Crie um conta usando : npm adduser
e então prossiga nos prompts
Essa parte é fácil , para publicar sue pacote use :
npm publish
Você pode uma url para um tarball
, ou um nome de arquivo de um tarball, ou o caminho para uma pasta.
Tenha em mente que tudo que estiver na pasta será exposto por padrão. Então se você tem arquivos secretos(como arquivos com senhas, e informações sigilosas) use o arquivo .npmignore
para listar todos eles.
Twitte , compartilhe no github, no facebook, escreva no seu blog. Mostre para o mundo como é fácil instalar seu programa.