我是Electron和Node的新手。我似乎无法require()
从Electron中的另一个本地{.1.js文件开始,并且我不理解这个问题。我认为我所缺少的只是一个简单的东西,但我找不到它。
这是我的文件结构:
/
package-lock.json
node_modules
main.js
package.json
game/
...
test.js
properties.js
assets/html/
main_window.html
main.js
仅将main_window.html
加载到Electron窗口中,而没有其他内容。test.js
从html文件中引用了<script src="../../game/test.js"></script>
。这里是test.js
:
const properties = require('./properties');
...
作为回报,我在开发工具控制台中收到此错误:
Uncaught Error: Cannot find module './properties'
当我在node test.js
文件夹中使用game
命令时,文件被导入,一切正常。但是,当我切换到Electron并从根目录使用npm start
时,我想我需要在本地.js文件中加上一个点和正斜杠,以使其应有的样子。而且,尽管与test.js
文件位于同一文件夹中,但似乎找不到properties.js
。
还有package.json
个文件,以防万一:
{
"name": "economy-board-game-electron",
"version": "1.0.0",
"description": "Recreation of that board game for educational purposes.",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"author": "Edvin Boul",
"license": "MIT",
"dependencies": {
"electron": "^4.0.1"
}
}
答案 0 :(得分:2)
该路径可能是相对于html文件的路径,请尝试执行../../game/properties,如果可行,请考虑将您的主要html入口点与游戏目录置于同一级别–
Electron不需要以任何特殊方式对文件进行结构化,但是在组织上可以更容易地以这种方式进行推理,因此您不必编写冗长的回溯路径。
这也是他们大多数示例的完成方式,他们会尽力做到这一点,以便您几乎可以保留典型的网站结构。
答案 1 :(得分:0)
我遇到了同样的问题,大约一个小时前问了这个问题,只是得到了正确的答案(在评论中):Issue in requiring a custom module。
<script>
的{{1}}标记。使用test.js
和module.exports.Test = Test;
导出两个JS文件。这些说明必须在各自的文件中,并在末尾。我假设您的类(或您要导出的任何类)分别命名为module.exports.Properties = Properties;
和Test
。
在HTML文件中的Properties
标记之间需要./../../game/test
。 (不确定路径,但是您需要从HTML文件位置开始)
<script>
中需要./properties
。