【问题标题】:Webpack/electron require dynamic moduleWebpack/electron 需要动态模块
【发布时间】:2018-08-26 19:52:17
【问题描述】:

我想在文件夹中添加一个模块,作为插件。所以我希望用户能够将 JavaScript 文件添加到已经编译的电子/webpack 应用程序中,并让我的应用程序加载并执行它。所以它就像一个插件系统。我曾尝试要求 plugins/ 文件夹中的每个文件,但事实证明它只是在编译时被捆绑到 bundle.js 中,我希望能够在编译后更改它,就像一个插件一样。我怎样才能做到这一点?

【问题讨论】:

    标签: node.js webpack electron


    【解决方案1】:

    我认为您正在寻找的是global.require,如this similar question 中所述。

    请注意,由于它是 Node 的 require,它将缓存所需的模块,因此在您重新启动电子应用程序以便它再次调用 global.require 之前,修改插件的代码不会生效。如果这是一个问题,您可以使用此(不推荐的)sn-p 强制重新加载特定模块:

    delete global.require.cache[global.require.resolve(moduleName)]
    

    【讨论】:

    • 它有效,但仅当我需要绝对路径时.. 我希望能够访问我的相对路径,或者只是一种访问数据的简单方法,而不是输入整个静态地址
    • 不能getAppPath() 解决这个问题?因此,您可以从当前应用程序的路径动态构建绝对路径(顺便说一句,您将需要阅读链接的下一条评论,了解如何弄乱这个文件夹可能是个坏主意,也许让用户将他的插件放在他的主目录中可能会更好) .
    • 我正在查看同样的问题 atm。但是使用 global.require 会抛出一个错误说 global.require is not a function 。有什么想法会出错吗?我正在使用vue-cli-plugin-electron-build 用vue 创建一个电子应用程序。
    猜你喜欢
    • 2017-10-07
    • 1970-01-01
    • 2017-04-30
    • 2019-09-04
    • 1970-01-01
    • 2019-12-31
    • 2015-10-20
    • 2021-04-10
    • 2017-03-20
    相关资源
    最近更新 更多