npm package node-modules package.json

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 del package.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)