我有一个Angular应用,正在尝试与Electron打包。该应用程序可在Electron中运行,但当我路由至任何形式时,路由变为空白,而开发工具则向我显示此错误。
ERROR ReferenceError: $ is not defined
at new e (main.c8d5fcf078fdd8e78633.js:1)
at Ts (main.c8d5fcf078fdd8e78633.js:1)
at ws (main.c8d5fcf078fdd8e78633.js:1)
at Js (main.c8d5fcf078fdd8e78633.js:1)
at cl (main.c8d5fcf078fdd8e78633.js:1)
at ll (main.c8d5fcf078fdd8e78633.js:1)
at Js (main.c8d5fcf078fdd8e78633.js:1)
at Object.Gs [as createEmbeddedView] (main.c8d5fcf078fdd8e78633.js:1)
at t.createEmbeddedView (main.c8d5fcf078fdd8e78633.js:1)
at e.createEmbeddedView (main.c8d5fcf078fdd8e78633.js:1)
我不确定从哪里开始,因为这是缩略代码。我正在考虑从缩小版本的应用程序开始,以查看是否可以查明问题所在。
解决此问题的最佳方法是什么?
好吧,我知道了。我正在看Anuj Nair's JSCamp的谈话,而他正在处理安全问题。我将此添加到了index.js文件中。
webPreferences: {
nodeIntegration: false,
preload: path.join(__dirname, 'preload.js')
},
然后我用以下代码创建了一个preload.js文件。
var _process = process;
process.once('loaded', function () {
global.process = _process;
});
const fs = require('fs')
global.desktop = {
files: () => fs.readdirSync(__dirname)
}