Tengo una gran cantidad de archivos javascript divididos en 4 subdirectorios en mi aplicación. Con un gruñido, los agarro todos y los compilo en un archivo. Estos archivos no tienen una función module.exports.
Quiero usar el paquete web y dividirlo en 4 partes. No quiero entrar manualmente y solicitar todos mis archivos.
Me gustaría crear un complemento que en la compilación recorra los árboles de directorios, luego tome todos los nombres y rutas de archivo .js, luego requiera todos los archivos en los subdirectorios y los agregue a la salida.
Quiero que todos los archivos de cada directorio se compilen en un módulo que luego podría requerir de mi archivo de punto de entrada, o incluirlo en los activos que menciona http://webpack.github.io/docs/plugins.html .
Al agregar un nuevo archivo, solo quiero colocarlo en el directorio correcto y saber que se incluirá.
¿Hay alguna forma de hacer esto con un paquete web o un complemento que alguien haya escrito para hacer esto?
fuente
image-size-loader
para todas las imágenes para crear marcadores de posición con relaciones de aspecto correctas.loaders: [ { test: /\.json$/, loader: 'json' } ]
.{ test: /\.json$/, loader: 'json' }
agrega el cargador json para archivos .json, siempre que haya instalado el cargador.require.context(...)
(por ejemplo, si está tratando de requerir todo en varias carpetas), webpack lanzará una advertencia. Los argumentosrequire.context
deben ser constantes en tiempo de compilación.require-context
es un envoltoriowebpack
, y su muestra se toma dewebpack
la documentación de webpack.js.org/guides/dependency-management/#context-module-api , que se agregó en 2016 (en github.com/webpack/ webpack.js.org/commit/… ), también después de que escribí mi respuesta ... Tal vez los escritores de webpack fueron influenciados por mi respuesta. Tenga en cuenta que lo expandieron para tener caché.En el archivo de mi aplicación terminé poniendo el require
cortesía de esta publicación: https://github.com/webpack/webpack/issues/118
Ahora está agregando todos mis archivos. Tengo un cargador para html y css y parece funcionar muy bien.
fuente
expr
en este ejemplo?expr
es una ruta a un solo archivo dentro de la carpeta de contexto. así que si necesita hacer esto no solo para requerir todos los archivos html, esto es útil. webpack.github.io/docs/context.html#context-module-apiexpr
queda claro qué está haciendo el argumento basado aquí, incluso después de mirar los documentos del paquete web. ¿Qué significa "hacer esto no solo para requerir todos los archivos html"? graciasexpr
significa aquí¿Qué tal un mapa de todos los archivos en una carpeta?
Hacer esto:
fuente
Ejemplo de cómo obtener un mapa de todas las imágenes de la carpeta actual.
fuente
Todos los méritos para @splintor (gracias).
Pero aquí está mi propia versión derivada.
Beneficios:
{module_name: exports_obj}
objeto.Código (versión original):
Ejemplo:
Salida de muestra para eventual
console.log(allModules);
:Árbol de directorio:
Código (versión profunda):
Ejemplo:
Resultado del ejemplo anterior usando esta versión:
fuente
esto funciona para mi:
NOTA: esto puede requerir archivos .js en subdirecciones de ./js/ de forma recursiva.
fuente