简体   繁体   English

不能在Electron中的单独js文件中使用require

[英]Cannot use require in a separate js file in Electron

I have a very simple Electron app, using version 5.0.1. 我有一个非常简单的Electron应用程序,使用5.0.1版本。

Here is my index.html file: 这是我的index.html文件:

<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
    <meta content="utf-8" http-equiv="encoding">
    <title>Webgl</title>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/104/three.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
      <script src="./initialization.js"></script>
      <link rel="stylesheet" type="text/css" href="application.css">
  </head>

  <body>

  <script>

    initialization();

  </script>
</html>

Then my main.js file: 然后我的main.js文件:

const {app, BrowserWindow} = require('electron')
const path = require('path')
const url = require('url')

let win

function createWindow () {
  // Create the browser window.
  win = new BrowserWindow({ width: 1280, 
                            height: 720, 
                            nodeIntegration: true, 
                            resizable: false,
                            maximizable: false })

  // and load the index.html of the app.
  win.loadFile('index.html')

  // Open the DevTools.
  win.webContents.openDevTools()

  // Emitted when the window is closed.
  win.on('closed', () => {
    // Dereference the window object, usually you would store windows
    // in an array if your app supports multi windows, this is the time
    // when you should delete the corresponding element.
    win = null
  })

}

app.on('ready', createWindow)

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (win === null) {
    createWindow()
  }
})

my package.json file: 我的package.json文件:

{
  "name": "estimation",
  "version": "1.0.0",
  "description": "estimation app",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "electron": "^5.0.1"
  }
}

Then my inittialization.js file that contains the initialization() method and const fs = require('fs') ; 然后我的inittialization.js文件包含initialization()方法和const fs = require('fs') ;

const fs = require('fs');

function initialization(){
}

Now I have asked the same question in multiple places, I have tried multiple solutions, nothing works. 现在我在多个地方问了同样的问题,我尝试了多种解决方案,没有任何效果。 I am wondering if this is an Electron bug at this stage. 我想知道这个阶段是否是电子漏洞。

The error I can't get rid off and I keep getting whatever I do is this Uncaught ReferenceError: require is not defined 错误我无法摆脱,我不断得到我做的是这个Uncaught ReferenceError: require is not defined

I simply want to use require in another JS file. 我只想在另一个JS文件中使用require。 Why is node.js or electron not picking this up ? 为什么node.js或者电子没有把它拿起来?

Place the nodeIntegration inside webPreferences attribute 将nodeIntegration放在webPreferences属性中

{ width: 1280,
 height: 720,
 webPreferences : { nodeIntegration: true }, 
 resizable: false,
 maximizable: false
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM