質問するログイン新規登録

回答編集履歴

1

解説の追加

2019/01/17 03:39

投稿

miyabi-sun
miyabi-sun

スコア21501

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