Warm tip: This article is reproduced from serverfault.com, please click

node.js-将自定义模块导入到Electron应用程序的renderer.js中

(node.js - Importing customized module into renderer.js in Electron app)

发布于 2020-12-01 04:46:44

我有一个定制的模块,其中包含一些我想在中使用的功能renderer.js我尝试了以下几种导入方式,但是它不起作用(实际上,它会导致其他一些功能renderer.js也无法执行。

const supp = require('./supp.js')

const supp = require('./supp')

const supp = require('supp.js')

const supp = require(path.join(__dirname, '/supp.js')

import 'supp'

supp.jsrenderer.js位于同一文件夹级别main.js如果有人可以建议?谢谢。

更新:以下是文件中的所有代码 supp.js

const pinOneInGrp = (itemID, grpName, itemColor, grpColor) => {
  let item = document.getElementById(itemID);
  let grpItems = document.getElementsByClassName(grpName);
  for(var i = 0; i < grpItems.length;i++) {
    grpItems[i].style.background-color = grpColor
  }
  item.style.background-color = itemColor;
}

module.exports = {
  pinOneInGrp
}

如果上方importrequire行之一包含在的顶部renderer.js,则不会执行in中的任何后续操作renderer.js例如,/之后有一个ipc.send()andipc.on()动作这两个不会从发送(因此,从接收回来)importrequiremain.js

Questioner
Tristan Tran
Viewed
55
Alexander Leithner 2020-12-01 19:53:56

你发布的代码包含一个错字。它抛出的错误(你很可能看不到)是一个错误SyntaxError,因为你不能从中减去color(是undefinedgrpItems[i].style.background,然后再分配给它。因此,你只需从以下位置更正你的厕所

for (var i = 0; i < grpItems.length; i++) {
    grpItems[i].style.background-color = grpColor;
}

for (var i = 0; i < grpItems.length; i++) {
    grpItems[i].style.backgroundColor = grpColor;
}

(for循环下方的样式分配也是如此!)

请注意,在样式表中所有用连字符拼写的CSS属性都必须使用camelCase,否则它们将表示减法,这会引起你的问题。此外,Mozilla的开发人员网络Web API参考(特别是在“设置样式”下)对此行为进行了说明