回答編集履歴
1
解説の追加
answer
CHANGED
@@ -1,17 +1,28 @@
|
|
1
1
|
> `ReferenceError:createWindow is not defined at App.`
|
2
2
|
|
3
3
|
エラー文読め&Node.jsもうちょっと勉強しろ案件です。
|
4
|
+
もう少しこの2つに詳しくなれば簡単に自己解決できるようになるかと思いますが、今回は軽く解説します。
|
4
5
|
|
5
6
|
コードを読んだところ、メインでは`require("./createWindow.js");`を実行しており、
|
6
7
|
createWindow.jsは最終的に
|
7
8
|
`exports.default = createWindow;`を実行しています。
|
8
9
|
|
9
10
|
ん?`exports.default`???
|
10
|
-
これNode.jsのrequireの書き方じゃないんだけど
|
11
|
+
これNode.jsのrequireの書き方じゃないんだけど何処情報なんだ?
|
11
|
-
これだと`const createWindow = require("./createWindow.js").default;`
|
12
|
+
これだとメインのコードには`const createWindow = require("./createWindow.js").default;`という書き方しないと取り出せないですね。
|
12
13
|
|
13
14
|
---
|
14
15
|
|
16
|
+
ざっくり説明しておくと、
|
17
|
+
Node.jsでrequire関数を実行した場合、`module.exports`への代入を持ち帰ってきます。
|
18
|
+
勝手に変数領域が拡張されたりしないので、自分で`const createWindow = require(ファイル名)`等として変数宣言しながら持ち帰る必要があります。
|
19
|
+
|
20
|
+
`exports`は`module.exports`のエイリアスなので、`exports.default`へ代入した場合、
|
21
|
+
`module.exports.default`への代入という扱いになります。
|
22
|
+
なので`require(ファイル名)`から更に`.default`プロパティにアクセスしなければ値を取り出せません。
|
23
|
+
|
24
|
+
---
|
25
|
+
|
15
26
|
Node.js流儀に従うなら下記のように書き換えましょう。
|
16
27
|
|
17
28
|
createWindow.js
|