📝 Tipos de Recursos
Como se describe en la documentación de recursos, Parcel representa cada archivo de entrada como un Asset. Los tipos de recursos se representan como clases que heredan de la clase base Asset e implementan la interfaz requerida para procesar, analizar dependencias, transformar y generar código.
Debido a que Parcel procesa los recursos en paralelo en múltiples núcleos de procesador, las transformaciones que pueden realizar los tipos de recursos están limitadas a las que operan en un solo archivo a la vez. Para transformaciones en varios archivos se puede usar un Empaquetador personalizado.
Interfaz de Recursos
const { Asset } = require('parcel-bundler')
class MyAsset extends Asset {
type = 'foo' // establecer el tipo de salida principal
parse(code) {
// convertir el codigo a un AST
return ast
}
pretransform() {
// opcional. transformar antes de recolectar dependencias.
}
collectDependencies() {
// analizar dependencias
this.addDependency('my-dep')
}
transform() {
// opcional. transformar después de recolectar dependencias.
}
generate() {
// generar código. Puedes devolver varias representaciones si lo necesitas.
// los resultados son enviados al empaquetador apropiado para generar los paquetes finales.
return {
foo: 'my stuff here', // salida principal
js: 'some javascript' // representación alternativa para ser colocada en el paquete de JS si es necesario.
}
}
}Registrando un tipo de Recurso
Puedes registrar tus tipos de recursos con un paquete usando el método addAssetType. Este acepta una extensión de archivo, y la ruta a tu módulo de tipo de recurso. Esta es una ruta en lugar del objeto real para que pueda ser enviado a procesos paralelos de trabajo.
const Bundler = require('parcel-bundler')
let bundler = new Bundler('input.js')
bundler.addAssetType('.ext', require.resolve('./MyAsset'))
Ayudanos a mejorar la documentación
Si hay algo que falta o no está del todo bien explicado abre un issue en el repositorio de la página o edita esta página.