Actualmente estoy escribiendo un complemento para obsidian.md que representa funciones matemáticas dentro de un bloque de código. Usé webpack para agrupar bibliotecas de nodos como yaml y function-plot. En la configuración, agregué 'obsidiana' como externo. El complemento se compila con una advertencia sobre el tamaño del paquete, pero eso no importa, ya que es local de todos modos. Cuando agrego el complemento, siempre dice "obsidiana no definida". ¿Supongo que está buscando obsidiana en el contexto global y no puede encontrarla? Aquí está el repositorio: https://github.com/leonhma/obsidian-functionplot ¿Sabe cómo configurar el paquete web correctamente? Probablemente haya una solución realmente fácil, pero también soy nuevo en mecanografiado, paquete web y desarrollo de complementos para obsidiana.
Gracias @håkon-hægland por tu sugerencia (¿por qué no pensé en eso?). En primer lugar, el archivo generado por webpack parecía
function(obsidian) { ... (around 300kb code) }(obsidian); , por lo que webpack intentó acceder a un objeto global llamado 'obsidiana'. La parte importante en webpack.config.js fue
... externals: [ obsidian: 'obsidian' ], ...Según su sugerencia, eché un vistazo al otro repositorio y usan
... externals: [ obsidian: 'commonjs2 obsidian' ], ...Eso solucionó mi problema y ahora la obsidiana se importa correctamente en tiempo de ejecución. Solo publico esto en caso de que alguien más tenga este problema, ya que no pude encontrar una respuesta existente.
PD: Para aquellos interesados, ya que seguramente están desarrollando complementos de obsidiana: también fue muy importante establecer output.libraryTarget en commonjs o commonjs2 dentro de la configuración del paquete web.