はじめに
Electron Apps Made Easy with Create React App and Electron Forgeを参考に初めてみた。
が、electron-forge make
が失敗する。
どうやら、Windowsのパス制限の模様。ざっくりというと、以下のような感じにする!
- プロジェクトは浅いディレクトリで開発する。
- package.jsonにasar:trueを指定する。
よくわからない言葉で怒られる.....
An unhandled error has occurred inside Forge:[39m
[31mAn error occured while making for target: squirrel[39m
[31mFailed with exit code: 1[39m
[31mOutput:[39m
[31m'electron_react.nuspec' ?????????????????[39m
[31m??????????????????????????????????? 260 ????????????????? 248 ????????????[39m
[31mError: Failed with exit code: 1[39m
[31mOutput:[39m
[31m'electron_react.nuspec' ?????????????????[39m
[31m??????????????????????????????????? 260 ????????????????? 248 ????????????[39m
node_modules\electron-winstaller\src\spawn-promise.tsあたりで怒られているが、実際は、node_modules\electron-winstaller\lib\spawn-promise.jsで怒られている。
#ソースマップでそうなるのはわかるが......
とりあえず、iconv-liteをかましてstdoutをShift_JISを変換かけてやる。
var bufHandler = function (b) {
// var chunk = b.toString();
// stdout += chunk;
stdout += iconv.decode(Buffer.from(b), 'Shift_JIS')
};
どうやらパスが長いらしい。
Windows 10になっても、あいかわらず、こんなことで怒られるとは......
ということで、プロジェクトのディレクトリを上の方に移動すると、とりあえずは解決する。
再度、怒られる.....
今度は、こんな感じ。
An unhandled error has occurred inside Forge:
An error occured while making for target: squirrel
Failed with exit code: 4294967295
Output:
System.AggregateException: 1 つ以上のエラーが発生しました。 ---> System.IO.PathTooLongException: 指定されたパス、ファイル名、またはその両方が長すぎます。完
全限定型名は 260 文字未満で指定し、ディレクトリ名は 248 未満で指定してください。
場所 System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
場所 System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
場所 System.IO.Path.InternalGetDirectoryName(String path)
場所 Squirrel.ReleasePackage.<>c__DisplayClass14_0.<extractZipWithEscaping>b__0()
場所 System.Threading.Tasks.Task.InnerInvoke()
場所 System.Threading.Tasks.Task.Execute()
どうしようかと調べてみると、以下のように、asarを使ってあげればいいらしい。
"config": {
"forge": {
"packagerConfig": {
"asar": true
},
おしまい
ぜんぜん、本題に入れないが、とりあえず、makeまでできるようになった。
これから、なんか作っていこう!