Node.js 网页包/电子需要动态模块
我想需要一个文件夹上的模块,作为一个插件。因此,我希望用户能够将JavaScript文件添加到已编译的electron/webpack应用程序中,并让我的应用程序加载并执行它。所以它就像一个插件系统。我试着要求plugins/文件夹中的每个文件,但结果证明,在编译时它只是被捆绑到bundle.js中,我希望能够在编译后更改它,就像插件一样。我怎样才能做到这一点呢?我认为您需要的是Node.js 网页包/电子需要动态模块,node.js,webpack,electron,Node.js,Webpack,Electron,我想需要一个文件夹上的模块,作为一个插件。因此,我希望用户能够将JavaScript文件添加到已编译的electron/webpack应用程序中,并让我的应用程序加载并执行它。所以它就像一个插件系统。我试着要求plugins/文件夹中的每个文件,但结果证明,在编译时它只是被捆绑到bundle.js中,我希望能够在编译后更改它,就像插件一样。我怎样才能做到这一点呢?我认为您需要的是全局性的。如中所述,需要 请注意,由于它是节点的require,它将缓存所需的模块,因此修改插件的代码将不会生效,直到
全局性的。如中所述,需要
请注意,由于它是节点的require
,它将缓存所需的模块,因此修改插件的代码将不会生效,直到您重新启动电子应用程序,使其再次调用global.require
。如果这是一个问题,您可以使用以下(未推荐的)代码段强制重新加载特定模块:
delete global.require.cache[global.require.resolve(moduleName)]
我认为您正在寻找的是全球的。需要中所述的
请注意,由于它是节点的require
,它将缓存所需的模块,因此修改插件的代码将不会生效,直到您重新启动电子应用程序,使其再次调用global.require
。如果这是一个问题,您可以使用以下(未推荐的)代码段强制重新加载特定模块:
delete global.require.cache[global.require.resolve(moduleName)]
它起作用了,但仅当我需要绝对路径时。。我希望能够访问我的相对路径,或者只是一种简单的方式来访问数据,而不是键入整个静态地址无法解决这个问题?因此,您可以根据当前应用程序的路径动态构建绝对路径(顺便说一句,您希望阅读该链接的下一条评论,说明如何处理此文件夹可能不是一个好主意,也许让用户将其插件放在主目录中会更好)。但是使用global.require
会抛出一个错误,说明global.require不是函数。你知道会出什么问题吗?我正在使用vue cli插件electron build
创建一个带有vue的electron应用程序。它可以工作,但仅当我需要绝对路径时。。我希望能够访问我的相对路径,或者只是一种简单的方式来访问数据,而不是键入整个静态地址无法解决这个问题?因此,您可以根据当前应用程序的路径动态构建绝对路径(顺便说一句,您希望阅读该链接的下一条评论,说明如何处理此文件夹可能不是一个好主意,也许让用户将其插件放在主目录中会更好)。但是使用global.require
会抛出一个错误,说明global.require不是函数。你知道会出什么问题吗?我正在使用vue cli插件electron build
创建一个带有vue的electron应用程序。