tag:crieit.net,2005:https://crieit.net/tags/clasp/feed
「clasp」の記事 - Crieit
Crieitでタグ「clasp」に投稿された最近の記事
2022-06-12T20:06:50+09:00
https://crieit.net/tags/clasp/feed
tag:crieit.net,2005:PublicArticle/18221
2022-06-12T20:06:21+09:00
2022-06-12T20:06:50+09:00
https://crieit.net/posts/WSL2-clasp-WSL2-clasp-push-Error-Looks-like-you-are-offline
【WSL2/clasp】WSL2上からclasp pushするとError: Looks like you are offline.と怒られる問題を回避する
<p>こんにちは、しきゆらです。<br />
今回は、タイトルの通りWSL2からclaspを使おうとするとofflineと怒られる問題が起こったのでこれを回避する方法をメモしておきます。</p>
<p>気が付くとWSL2からclasp pushをしようとすると、以下のようなエラーが出てしまってプッシュできない状態になっていました。<br />
よくわからないですが、たまにプッシュできたりするので何が悪いのかよくわかりません。<br />
WSLをインストールしなおしたりしても解決しませんでした。<br />
また、調べてもそれっぽい記事が出てこないので「おま環」ぽい気がしています。</p>
<p>さて、これではWSL内で書いたGASをプッシュできません。<br />
これを回避する方法をメモしておきます。</p>
<p>回避方法は単純で、Docker上からclasp pushをするだけ。<br />
調べてみると、結構DockerでGASを管理したい人がいるようで、情報がそこそこありました。<br />
ということで、プロジェクト諸々をDocker上にマウントしてコマンド実行できるようにしていきます。<br />
なお、ここではGASをTypeScriptで書いたのちWebpackでビルドしたものをclaspコマンドでプッシュする流れです。<br />
参考: <a target="_blank" rel="nofollow noopener" href="https://qiita.com/rei-ta/items/61b3fde6a069b77d335d">https://qiita.com/rei-ta/items/61b3fde6a069b77d335d</a></p>
<h1 id="Dockerの準備"><a href="#Docker%E3%81%AE%E6%BA%96%E5%82%99">Dockerの準備</a></h1>
<p>まずは、Dockerの準備をしましょう。<br />
Dockerのインストールは、WSLのホストであるWindows側に行えば良いようです。<br />
Dockerfileを以下のように作成します。</p>
<pre><code>FROM node:slim
RUN npm install @google/clasp -g
</code></pre>
<p>claspを実行する環境が必要なので、イメージとしてnodeを使います。<br />
サイズが小さいほうが何かと便利なのでnode:slimを使っていますが、nodeが動けばなんでもよいかと思います。<br />
また、claspを使えるようにインストールしておきます。</p>
<p>続いて、docker-compose.ymlを作成します。</p>
<pre><code>version: "3"
services:
clasp:
build: .
tty: true
stdin_open: true
volumes:
- "/home/:/usr/src"
working_dir: /usr/src/${user}
</code></pre>
<p>clasp loginしたのち、認証情報がhome直下にできるため/home/${user}をマウントしています。<br />
これで準備は完了。</p>
<h1 id="offlineと怒られる問題を回避する"><a href="#offline%E3%81%A8%E6%80%92%E3%82%89%E3%82%8C%E3%82%8B%E5%95%8F%E9%A1%8C%E3%82%92%E5%9B%9E%E9%81%BF%E3%81%99%E3%82%8B">offlineと怒られる問題を回避する</a></h1>
<p>Dockerを立ち上げていきます。<br />
<code>docker-compose run --rm -u ${id -u $usr} clasp /bin/bash</code><br />
シェルが立ち上がったら以下のコマンドでログインします。<br />
<code>clasp login --no-localhost</code><br />
これにて準備は完了です。<br />
あとは、コードを書いてWebapckでビルドしたものをclasp pushしましょう。</p>
<pre><code>node@ded2ca180394:$ clasp push
└─ /usr/src/path/to/project/appsscript.json
└─ /usr/src/path/to/project/bundle.js
Pushed 2 files.
</code></pre>
<p>問題なくプッシュできていますね。<br />
これにて回避完了です。</p>
<h1 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h1>
<p>手元の環境では、これにてofflineと怒られる問題を回避できました。<br />
ちょっと手間ですが、ひとまずは回避できました。<br />
同じような問題が起こっている場合は試して見てください。</p>
<p>今回は、ここまで。<br />
おしまい</p>
しきゆら