我目前正在为obsidian.md编写一个插件,它在代码块中呈现数学函数。我用webpack来捆绑像yaml和功能绘图这样的节点库。在配置中,我将'obsidian‘作为外部添加。插件的构建带有关于包大小的警告,但这并不重要,因为它是本地的。当我添加插件时,它总是说‘黑石’没有定义‘。我想它是在全球范围内寻找黑暗面,却找不到它?这是回购:https://github.com/leonhma/obsidian-functionplot,你知道如何正确配置webpack吗?可能有一些非常简单的修复,但我也是新的类型记录,webpack和开发插件的黑石。
发布于 2022-05-09 14:08:21
谢谢你的建议(为什么我没有想到呢?)首先,webpack生成的文件如下所示
function(obsidian) {
... (around 300kb code)
}(obsidian);
因此webpack试图访问一个叫做“黑石”的全球物体。webpack.config.js
的重要部分是
...
externals: [
obsidian: 'obsidian'
],
...
按照你的建议,我看了另一个回购,他们用
...
externals: [
obsidian: 'commonjs2 obsidian'
],
...
这解决了我的问题,现在在运行时正确地导入了黑石。如果别人有这个问题,我自己也找不到答案,就把这个贴出来吧。
PS:对于那些感兴趣的人来说,因为你肯定在开发黑石插件:在webpack配置中将output.libraryTarget
设置为commonjs
或commonjs2
也是非常重要的。
https://stackoverflow.com/questions/72161656
复制相似问题