una - Cómo copiar desde node_modules solo los archivos necesarios para la distribución utilizando grunt y grunt-contrib-copy
convertidor de versiones de autocad (2)
Usted puede:
1) Utilice la tarea de copia para copiar cada archivo relevante al directorio de destino:
copy:
js:
files: [
{
expand: true,
cwd: ''node_modules/jquery'',
src: ''jquery.min.js'',
dest: ''www/js''
},
{
expand: true,
cwd: ''node_modules/jquery-mobile-bower/js'',
src: ''jquery.mobile-*.min.js'',
dest: ''www/js''
}
]
Jquery.min.js y jquery.mobile-xyzmin.js se copiarán en el directorio www / js.
2) Use concat task para concat todos los archivos en un solo archivo dest (útil para generar archivos javascript / stylesheets únicos)
concat:
options:
separator: '';''
js:
dest: ''www/js/lib.js''
src: [
''node_modules/jquery/jquery.min.js'',
''node_modules/jquery-mobile-bower/js/jquery.mobile-*.min.js''
]
jquery.min.js y jquery.mobile-xyzmin.js se fusionarán en un único archivo www / js / lib.js, separado por un punto y coma.
Pensé que leí en alguna parte que la propiedad "principal" de package.json podría usarse para copiar solo los archivos necesarios para "dist" o implementación. Supuse que había una tarea difícil para eso, pero no veo nada que me ayude o me dé instrucciones. Ahora copio todo bajo node_modules, pero no necesito distribuir código de ejemplo de biblioteca, por ejemplo.
¿Hay alguna tarea complicada o instrucciones sobre cómo usar correctamente la copia-contribución-gruñido para copiar los archivos de una dependencia node_module con suerte del objeto pkg estándar del objeto de configuración (un archivo package.json analizado)?
package.json no contiene suficiente información para que sepa qué incluir. Tendría que analizar todas las declaraciones require
, pero incluso entonces hay casos que no puede detectar, como un módulo que carga recursos, etc.
La forma correcta de hacer esto es que los autores de paquetes ignoren los archivos que no son necesarios al usar un archivo .npmignore
o, mejor aún, use la propiedad de files
en package.json para definir explícitamente qué archivos deben incluirse en el paquete.
Desafortunadamente, la mayoría de los autores de paquetes son perezosos y no se molestan en nada de esto ...
Le animo a que abra RP en los módulos en cuestión con la propiedad de files
.