添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
失眠的番茄  ·  周志华:Learnware ...·  2 年前    · 
谦虚好学的口罩  ·  梯度累加(Gradient ...·  2 年前    · 
机灵的皮带  ·  Git常用命令详解 - 知乎·  2 年前    · 
酒量小的小刀  ·  sed命令_Linux ...·  2 年前    · 
背景:WEB项目迁移到Electron,原WEB项目中用了JQuery,迁移后运行,抛出Uncaught ReferenceError: $ is not defined

发现是这个原因:

    webPreferences: {
      // preload: path.join(__dirname, 'preload.js'),
      nodeIntegration: true,
      contextIsolation: false,

把nodeIntegration和contextIsolation恢复默认值即可解决。

原因是渲染器进程集成了Node.js运行环境,必须以Node.js的方式去运行$函数,也就是需要let $ = require等方式去使用外部函数。

新手的思考:

为了便于项目迁移,始终将渲染器进程和Node.js环境保持隔离,renderer.js中完全不放Node.js相关的东西,Node.js相关的需求全部在预加载脚本preload.js中实现,这样就可以方便地在WEB应用程序和桌面应用程序间进行切换。对开发人员来说,做Electron页面时可以完全不用考虑怎么和Electron集成,先在熟悉的浏览器环境下开发,最后再迁到Electron环境下做后续开发。