Cómo npm publicar una carpeta específica pero como paquete raíz
package node-modules (3)
Le recomiendo que use .npmignore
lugar de mover o copiar cosas, especialmente si está usando un CI para implementaciones, y simplemente agregue allí los archivos que no desea publicar.
https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
Ejemplo:
#tests
test
coverage
#build tools
.travis.yml
.jenkins.yml
.codeclimate.yml
#linters
.jscsrc
.jshintrc
.eslintrc*
#editor settings
.idea
.editorconfig
Actualizar:
Si quieres dividir tu código, en diferentes paquetes npm usando el mismo repositorio, me topé con este proyecto recientemente: Lerna y se ve muy bien.
Tal vez deberias echar un vistazo
Tengo un proyecto que incluye una tarea sencilla para crear y empaquetar las fuentes y lanzarlas en un directorio llamado dist
. Mi objetivo es publicarlo como un paquete npm, pero solo mi carpeta dist. La documentación de npm dice que puedo usar la etiqueta de files
para especificar archivos para exportar. Funciona. Pero, la documentación también dice que:
Si nombra una carpeta en la matriz, entonces también incluirá los archivos dentro de esa carpeta
El resultado es un paquete npm, que node_modules se ve así:
Pero me gustaría ver todos mis archivos en la raíz del paquete (sin esa carpeta dist
). Mi archivo index.js
está dentro de la carpeta dist
, pero debería estar en la raíz. He intentado establecer files
etiquetas como /dist/**/*
pero no funcionó.
¿Cómo puedo lograrlo?
Tengo el mismo deseo, pero creo que no hay manera de lograr esto con solo usar las herramientas de npm . Otro script / herramienta podría ser utilizado para organizar su paquete.
Solución alternativa
Actualmente estoy copiando el archivo package.json
en la carpeta dist
y luego ejecutando el npm pack
dentro de la carpeta dist
. Creo que esto esencialmente proporciona el arreglo deseado de nuestro paquete.
Aquí hay algunas lecturas relevantes sobre este diseño de npm: ¿Por qué no hay Directorios.lib en Nodo .
También es interesante observar que jspm SÍ respeta la opción directories.lib
en package.json
y reorganiza los archivos al resolver el paquete npm. Todo esto ha sucedido para mí porque quiero construir una biblioteca común que pueda ser consumida por jspm o npm / webpack.
Tengo un problema similar al cartel original (@robsonrosa). En mi caso, uso typecript que compila en un directorio dist
. Si bien podría hacer una compilación mecanografiada en el directorio raíz, creo que la mejor solución es generar un archivo package.json
separado en el directorio dist.
Esto es similar a la sugerencia de @scvnc de copiar el package.json
pero con un toque:
Como parte del proceso de empaquetado, debe generar el package.json
para el paquete que se basa pero es distinto al archivo package.json
principal en el directorio raíz.
Lo racional:
- El archivo root
package.json
es el archivo de desarrollo. Puede contener scripts o dependencias de desarrollo que no son de ninguna utilidad para el usuario del paquete, pero pueden plantear problemas de seguridad para usted. El procedimiento de empaquetado puede incluir código que elimina esa información delpackage.json
producción.json. - Es posible que desee implementar su paquete en diferentes entornos que requieran archivos de paquetes diferentes (por ejemplo, es posible que desee tener diferentes versiones o dependencias)