Me gustaría publicar un paquete npm que contenga mi fuente y archivos de distribución. Mi repositorio de Github contiene una src
carpeta que contiene archivos fuente JavaScript. El proceso de construcción genera una dist
carpeta que contiene los archivos de distribución. Por supuesto, la dist
carpeta no está registrada en el repositorio de Github.
¿Cómo publico un paquete npm de manera que cuando alguien lo haga npm install
, reciba src
tan bien como dist
carpeta? Actualmente, cuando ejecuto npm publish
desde mi repositorio de git, solo src
se publica la carpeta.
Mi package.json se ve así:
{
"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
o.npmignore
(parece que no lo hace cuando leo el documento) - @Naresh, por favor díganos de qué manera funcionó bien.Cuando usted
npm publish
, si no tiene un.npmignore
archivo, npm usará su.gitignore
archivo (en su caso, excluyó ladist
carpeta).Para resolver su problema, cree un
.npmignore
archivo basado en su.gitignore
archivo, sin ignorar la carpeta dist .Soure: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
fuente
Ejemplo mínimo de cómo usar archivos de datos de un script
Otro caso de uso común es tener archivos de datos que sus scripts deben usar.
Esto se puede hacer fácilmente usando las técnicas mencionadas en: En node.JS, ¿cómo puedo obtener la ruta de un módulo que he cargado a través de require que es * no * mío (es decir, en algún node_module)
El ejemplo completo se puede encontrar en:
Con esta configuración, el archivo
mydata.txt
se colocanode_modules/cirosantilli-data-files/mydata.txt
después de la instalación porque lo agregamos a nuestrafiles:
entrada depackage.json
.Nuestra función
myfunc
puede entonces encontrar ese archivo y usar su contenido usandorequire.resolve
. También solo funciona en el ejecutable,./cirosantilli-data-files
por supuesto.package.json
mydata.txt
index.js
cirosantilli-data-files
El
is-installed-globally
paquete es útil si desea generar rutas relativas a los archivos distribuidos dependiendo de si están instalados localmente o globalmente: Cómo saber si el paquete npm se instaló global o localmentefuente