descjop で遊ぼう day 6 : Electronがうまくダウンロードできないとき

descjop (Electron + Clojure) Advent Calendar 2015 - Adventarの6日目です。

Story Permalink

descjopを使おうと思って、Electronのダウンロードのところで詰まってしまうことがあります。

Electronがダウンロードし展開し終わったよという

Done, without errors.

が表示されず、そのままunzip状態で止まってしまう現象です。

こうなってしまうと、次に同様の作業をやった場合でもElectronが中途半端な状態で展開されてしまい、Electronのビルドから先のステップに進めなくなってしまいます。

なぜかというと、一回ダウンロードしたElectronを再利用するように出来ているためです。

こうなったときは、キャッシュされているElectronを消去してやることで再実行することが出来、無事Electronのダウンロードを終えることが出来ます。

download-atom-shell-task.coffee · atom/grunt-download-electronでは、次のように定義されています。

  grunt.registerTask TaskName, 'Download electron',  ->
    @requiresConfig "#{TaskName}.version", "#{TaskName}.outputDir"
    {version, outputDir, downloadDir, symbols, rebuild, apm, token, appDir} = grunt.config TaskName
    downloadDir ?= path.join os.tmpdir(), 'downloaded-electron'
    symbols ?= false
    rebuild ?= true
    apm ?= getApmPath()
    version = "v#{version}"
    versionDownloadDir = path.join(downloadDir, version)
    appDir ?= process.cwd()
 
    done = @async()
    ... 以下略

つまり、ダウンロードを一時的にされるディレクトリは、os.tmpdir()つまりOSのテンポラリディレクトリに展開されるようになっています。

ただ、OSのテンポラリディレクトリを探すのがかったるいというケースもあるでしょう。

gruntfileの修正による対応

そこで、./Gruntfile.jsを少し修正します。

現状の./Gruntfile.jsは以下のようになっていると思います。

module.exports = function(grunt) {
 
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    "download-electron": {
        version: "0.35.0",
        outputDir: "./electron",
        rebuild: true
    }
  });
 
  grunt.loadNpmTasks('grunt-download-electron');
 
};

これに、

module.exports = function(grunt) {
 
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    "download-electron": {
        version: "0.35.0",
        outputDir: "./electron",
        rebuild: true,
        downloadDir: ".electron-download" // 追加します
    }
  });
 
  grunt.loadNpmTasks('grunt-download-electron');
 
};

のように、downloadDirというオプションを指定します。

このようにすると、カレントディレクトリ上にElectronのキャッシュがダウンロードされます。

.electron-downloadというフォルダが出来ているのが見えましたよね。

以上、Electronがダウンロードうまくできないときのチップスでした。

Colophon

編集長
Greative GK. 原一浩 ( kara_d )
製版システム
Clojure / Compojure / Ring / Enlive / markdown-clj / Jetty / MySQL
Share this magazine!
Follow designudge

Magazine Archives

vol.122

2016-2-01

Cover

台湾に行ってきました。

今回のカバーは、台湾にて撮影したものです。

自治体Webデザイントレンドこぼれ話 : ここだよマップ

CSS Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。

descjop で遊ぼう day 16 : Windows版のメニューを表示する

2015年の振り返り的な一人レトロスペクティブ

そういえば、まだ2015年の振り返りをマガジンに掲載していませんでした

編集後記

vol.121

2016-1-14

Cover

今回のカバーは、、、UFO?

自治体Webデザイントレンドこぼれ話 : 予告

CSS Niteの年末イベントShiftでやっているセッションにデザイントレンドというのがあります。

descjop で遊ぼう day 11 : Omのコンポーネントで遊ぼう

descjop で遊ぼう day 12 : Omのコンポーネントで遊ぼうその2

descjop で遊ぼう day 13 : Clojure ワークショップでTAしてきた話

descjop で遊ぼう day 14 : アプリケーションメニューを作ろう

descjop で遊ぼう day 15 : descjop 0.5.3をリリースしました

編集後記

vol.120

2016-1-14

Cover

今回のカバーも、初詣に行ったときのショットです。

descjop で遊ぼう day 6 : Electronがうまくダウンロードできないとき

descjop で遊ぼう day 7 : Hello Worldを出力してみるには

descjop で遊ぼう day 8 : Om basedテンプレートを使ってみる

descjop で遊ぼう day 9 : Om basedテンプレートにボタンをつける

descjop で遊ぼう day 10 : Om basedテンプレートにボタンをつけるその2

編集後記

vol.119

2016-1-10

Cover

今回のカバーは、初詣に行ったときのショット。

「descjop で遊ぼう」について

「descjop で遊ぼう」というのは年末にやったアドベントカレンダーのシリーズなのですが、前段としてまずはその解説をば。

descjop で遊ぼう day 1 : はじめに

descjop で遊ぼう day 2 : 3つのテンプレート

descjop で遊ぼう day 3 : 環境構築をしよう

descjop で遊ぼう day 4 : Helpを見てみよう

descjop で遊ぼう day 5 : デフォルトアプリケーションのビルドと起動

編集後記

vol.118

2015-10-22

Cover

今回のカバーは、Stack Overflow DevDaysのイベントをお手伝いしたときの窓からのショット。

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

ミカヅキClojure : ゼロからはじめるClojure入門第2回

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.117

2015-10-07

Cover

今回は散歩道からのショット

Editor’s Picks

designudgeで扱っている内容に近いジャンルのリソースのうち気になったものなど

U.S. Web Design Standardsを見てみる

今話題となっているU.S. Web Design Standardsの周辺情報など見てみました

Bootstrap 4徹底攻略 (3)

Bootstrap 4のアルファ版がでているので使おう

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.116

2015-9-28

Cover

今回は帰省した際に通った三島からのショットです

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

みそじ過ぎからの英語再学習

40を目前に今までサボっていた英語学習をはじめました

Bootstrap 4徹底攻略 (2)

Bootstrap 4のアルファ版がでているので使おう

ミカヅキClojure

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記

vol.115

2015-9-13

Cover

前回と同じ開発合宿のショットから一つ

Vaqum Web Design Review

創刊以来延々と続くWebサイトレビュー

開発合宿へ行こう! : Python mini hack-a-thon 夏山合宿 2015

先週末に行ってきた開発合宿について書きました。

ミカヅキClojure

Clojureっていうじつに面白いプログラミング言語をとりあげていきます

インフォメーション

おすすめのイベント・勉強会情報を紹介

編集後記