summaryrefslogtreecommitdiffstats
path: root/content/posts/Electron-CommonJS-require踩坑.md
diff options
context:
space:
mode:
authoryingyu5658 <i@yingyu5658.me>2025-12-13 08:33:08 +0800
committeryingyu5658 <i@yingyu5658.me>2025-12-13 08:33:08 +0800
commit1e5f8eb33bc41cb59faf059e83701152785cabea (patch)
tree45867273ac2178285be840764f7962d2b55556c6 /content/posts/Electron-CommonJS-require踩坑.md
downloadblog-1e5f8eb33bc41cb59faf059e83701152785cabea.tar.gz
blog-1e5f8eb33bc41cb59faf059e83701152785cabea.zip
Initial commit
Diffstat (limited to 'content/posts/Electron-CommonJS-require踩坑.md')
-rw-r--r--content/posts/Electron-CommonJS-require踩坑.md53
1 files changed, 53 insertions, 0 deletions
diff --git a/content/posts/Electron-CommonJS-require踩坑.md b/content/posts/Electron-CommonJS-require踩坑.md
new file mode 100644
index 0000000..de0388f
--- /dev/null
+++ b/content/posts/Electron-CommonJS-require踩坑.md
@@ -0,0 +1,53 @@
+---
+abbrlink: 472869193
+categories:
+- 往昔
+date: "2025-05-31T09:07:36+08:00"
+tags:
+- 前端
+- Electron
+title: Electron CommonJS require踩坑
+---
+最近在开发一个Electron项目,在导入类的时候有以下报错:
+```
+node:internal/modules/cjs/loader:1411 Uncaught Error: Cannot find module './File'
+Require stack:
+- E:\Develop\markdown-editor\src\html\index.html
+ at Module._resolveFilename (node:internal/modules/cjs/loader:1408:15)
+ at a._resolveFilename (node:electron/js2c/renderer_init:2:2643)
+ at defaultResolveImpl (node:internal/modules/cjs/loader:1064:19)
+ at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1069:22)
+ at Module._load (node:internal/modules/cjs/loader:1218:37)
+ at c._load (node:electron/js2c/node_init:2:17950)
+ at s._load (node:electron/js2c/renderer_init:2:31718)
+ at TracingChannel.traceSync (node:diagnostics_channel:322:14)
+ at wrapModuleLoad (node:internal/modules/cjs/loader:242:24)
+ at Module.require (node:internal/modules/cjs/loader:1494:12)
+```
+提示找不到模块。
+
+Electron中,使用require语句导入,都是默认从项目跟目录开始查找,所以要拼接完整路径。使用绝对路径也是不行的,在IDE里可以跳转,但是一运行就是找不到模块
+`const File = require("src/js/File")`
+
+```
+Uncaught Error: Cannot find module 'src/js/File'
+Require stack:
+- E:\Develop\markdown-editor\src\html\index.html
+ at Module._resolveFilename (node:internal/modules/cjs/loader:1408:15)
+ at a._resolveFilename (node:electron/js2c/renderer_init:2:2643)
+ at defaultResolveImpl (node:internal/modules/cjs/loader:1064:19)
+ at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1069:22)
+ at Module._load (node:internal/modules/cjs/loader:1218:37)
+ at c._load (node:electron/js2c/node_init:2:17950)
+ at s._load (node:electron/js2c/renderer_init:2:31718)
+ at TracingChannel.traceSync (node:diagnostics_channel:322:14)
+ at wrapModuleLoad (node:internal/modules/cjs/loader:242:24)
+ at Module.require (node:internal/modules/cjs/loader:1494:12)
+```
+
+## 解决方法
+使用path.join拼接完整路径
+```js
+const File = require(path.join(__dirname, "../js/File.js"));
+```
+经过测试,只能用这种方法导入,太怪了