【问题标题】:How to use require function inside a Javascript?如何在 Javascript 中使用 require 函数?
【发布时间】:2015-10-14 16:41:22
【问题描述】:

我正在尝试在电子中导入 Nodejs 的 fs,我正在尝试使用 require 函数。

但是,我收到错误 require is not defined。如何解决这个问题?我们是否需要为 electron 和 Nodejs 集成添加特殊配置?我正在我的index.html 文件中编写以下脚本:

function myFunction() { 
    var fs = require('fs')
}

【问题讨论】:

  • require 是服务器端 (node.js) 函数,在客户端脚本中不起作用。将上述代码放在 HTML 文件中是行不通的。
  • 请详细说明您的电子应用程序,并更具体地描述您尝试在哪里使用require()。我的node.js代码,require()是内置的。在客户端显示技术中(像HTML/浏览器一样的引擎,require()是没有内置的。
  • 这应该可以工作...您是否在渲染器进程中加载​​任何第三方库?你确定你没有设置node-integration: false(这会导致require没有在渲染器进程中定义)?

标签: javascript node.js electron


【解决方案1】:

关于require( 'fs' ) 我认为它只适用于主进程。如果您从渲染器进程尝试,请尝试使用 remote 模块的 require。

var remote = require( 'remote' );

var fs = remote.require( 'fs' );

【讨论】:

  • 以上内容应该涵盖您,但您的问题可能需要更多信息。你是如何创建你的项目的? (npm 初始化?)。您确定 electron-prebuilt 在您的 package.json 中显示为依赖项吗?您能告诉我们您正在运行哪个节点node -vnpm -v
  • require('fs') 也可以直接从渲染器进程中正常工作(至少,假设 require 存在并且没有被覆盖,因此我在对原始问题的评论中提出了问题)。 IIRC 您需要remote 唯一需要的是特定于主进程的模块,例如浏览器窗口、对话框等
  • 只是链接一些文档,为了澄清:github.com/atom/electron/blob/master/docs/api/remote.md
【解决方案2】:

很早就在你的 index.html 我那个

if (window.require) {
  window.requireNode = window.require;
  window.require = undefined;
}

后来

<script src="js/lib/require.js"></script>

这样我就可以了

window.requireNode("remote")

在我的网页中加载“节点电子”的东西

和传统的

window.require("my/module")

加载我的模块

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2020-02-29
    • 1970-01-01
    • 2021-01-09
    • 2017-06-04
    相关资源
    最近更新 更多