📝 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.