我目前正在為 obsidian.md 撰寫一個在代碼塊內呈現數學函式的插件。我使用 webpack 來捆綁 yaml 和 function-plot 等節點庫。在配置中,我將“黑曜石”添加為外部。該插件在構建時會發出有關捆綁包大小的警告,但這并不重要,因為它無論如何都是本地的。當我添加插件時,它總是說''obsidian' not defined'。我猜它正在全球范圍內尋找黑曜石,但找不到?這是 repo:https ://github.com/leonhma/obsidian-functionplot 你知道如何正確配置 webpack 嗎?可能有一些非常簡單的解決方法,但我對打字稿、webpack 和為黑曜石開發插件也是新手..
uj5u.com熱心網友回復:
謝謝@h?kon-h?gland 的建議(我為什么沒想到?)。首先,webpack 生成的檔案看起來像
function(obsidian) {
... (around 300kb code)
}(obsidian);
,所以 webpack 嘗試訪問一些名為“obsidian”的全域物件。重要的部分webpack.config.js是
...
externals: [
obsidian: 'obsidian'
],
...
根據您的建議,我查看了其他存盤庫,他們使用
...
externals: [
obsidian: 'commonjs2 obsidian'
],
...
這解決了我的問題,現在黑曜石在運行時正確匯入。只是發布這個以防其他人有這個問題,因為我自己找不到現有的答案。
PS:對于那些感興趣的人,因為你肯定是在開發黑曜石插件:在 webpack 配置中設定或在其中output.libraryTarget設定commonjs也非常重要。commonjs2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474861.html
標籤:javascript 网页包 webpack-5 黑曜石
上一篇:Webpack無法解釋檔案?
