Soy nuevo en Rollup y he estado aprendiendo mucho en los últimos días. Estoy creando un módulo con Rollup que depende de @mediapipe/face_mesh , que se proporciona como (¿creo?) un IIFE. Estoy interesado en inyectar face_mesh en mis archivos de salida en lugar de incluirlo como una dependencia externa.
Estoy usando los complementos commonjs y node-resolve para inyectarlo; todo funciona excepto un bit. Tengo un comportamiento extraño con la forma en que se agrega el script a la salida index.js
paquete.json
"source": "src/index.ts", "main": "dist/index.js", "dependencies": { "@mediapipe/face_mesh": "0.4.1633559619" }src/index.ts
import { FaceMesh } from '@mediapipe/face_mesh' const faceMesh = new FaceMesh()resumen.config.js
export default { input: 'src/index.ts', output: [ { file: pkg.main, format: 'cjs' } ], plugins: [ typescript({ typescript: require('typescript') }), commonjs({ include: /\/node_modules\// }), nodeResolve({ browser: true }), globals(), builtins() ] }face_mesh.js
(function(){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ var v;function aa(a){var b=0;return function(){ /* a bunch of minified code */ }).call(this);dist/index.js (salida de lanzamiento)
var face_mesh = {}; (function(){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ var v;function aa(a){var b=0;return function(){ /* a bunch of minified code */ }).call(commonjsGlobal); ... const faceMesh = new face_mesh.FaceMesh() Puede ver que node_resolve nombró al módulo "face_mesh" y configuró un objeto de exportación para él. Pero commonjs creo que cambia el .call(this) a .call(commonjsGlobal) .
Cuando ejecuto este módulo, aparece un error de que FaceMesh does not exist on type face_mesh .
Si cambio commonjsGlobal en el archivo de salida a face_mesh , entonces funciona. Según el resultado, creo que es lo que debería ser, pero "esto" se considera el alcance global en lugar del módulo.
Creo que podría usar el complemento de reemplazo para hacer este cambio automáticamente como paso final, pero eso me parece bastante raro. He estado buscando una mejor manera.
¿Alguien tiene un consejo de cómo manejar este problema? He buscado mucho, pero parece ser un problema poco común. La estructura del módulo de face_mesh parece poco común, o tengo un malentendido sobre qué complemento/herramienta debería usar para transpilarlo.