Eu gostaria de publicar um pacote npm que contém meus arquivos de origem e de distribuição. Meu repositório Github contém uma src
pasta que contém arquivos de origem JavaScript. O processo de construção gera uma dist
pasta que contém os arquivos de distribuição. Claro, a dist
pasta não é registrada no repositório Github.
Como faço para publicar um pacote npm de uma forma que quando alguém faz npm install
, que recebem src
, bem como dist
pasta? Atualmente, quando executo a npm publish
partir do meu repositório git, resulta na src
publicação de apenas uma pasta.
Meu package.json se parece com isto:
{
"name": "join-js",
"version": "0.0.1",
"homepage": "https://github.com/archfirst/joinjs",
"repository": {
"type": "git",
"url": "https://github.com/archfirst/joinjs.git"
},
"main": "dist/index.js",
"scripts": {
"test": "gulp",
"build": "gulp build",
"prepublish": "npm run build"
},
"dependencies": {
...
},
"devDependencies": {
...
}
}
.gitignore
ou.npmignore
(parece que não, conforme li o documento) - @Naresh, por favor, diga-nos como funcionou bem.Quando você
npm publish
, se não tiver um.npmignore
arquivo, o npm usará seu.gitignore
arquivo (no seu caso, você excluiu adist
pasta).Para resolver seu problema, crie um
.npmignore
arquivo baseado em seu.gitignore
arquivo, sem ignorar a pasta dist .Soure: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
fonte
Exemplo mínimo de como usar arquivos de dados de um script
Outro caso de uso comum é ter arquivos de dados que seus scripts precisam usar.
Isso pode ser feito facilmente usando as técnicas mencionadas em: Em node.JS, como posso obter o caminho de um módulo que carreguei por meio de require que * não * é meu (ou seja, em algum node_module)
O exemplo completo pode ser encontrado em:
Com esta configuração, o arquivo
mydata.txt
é colocadonode_modules/cirosantilli-data-files/mydata.txt
após a instalação porque o adicionamos à nossafiles:
entrada depackage.json
.Nossa função
myfunc
pode então encontrar esse arquivo e usar seu conteúdo usandorequire.resolve
. Ele também funciona apenas no executável, é./cirosantilli-data-files
claro.package.json
mydata.txt
index.js
cirosantilli-data-files
O
is-installed-globally
pacote é útil se você deseja gerar caminhos relativos para os arquivos distribuídos, dependendo se eles estão instalados localmente ou globalmente: Como saber se o pacote npm foi instalado global ou localmentefonte