こんにちは、しきゆらです。
今回は、タイトルの通りWSL2からclaspを使おうとするとofflineと怒られる問題が起こったのでこれを回避する方法をメモしておきます。
気が付くとWSL2からclasp pushをしようとすると、以下のようなエラーが出てしまってプッシュできない状態になっていました。
よくわからないですが、たまにプッシュできたりするので何が悪いのかよくわかりません。
WSLをインストールしなおしたりしても解決しませんでした。
また、調べてもそれっぽい記事が出てこないので「おま環」ぽい気がしています。
さて、これではWSL内で書いたGASをプッシュできません。
これを回避する方法をメモしておきます。
回避方法は単純で、Docker上からclasp pushをするだけ。
調べてみると、結構DockerでGASを管理したい人がいるようで、情報がそこそこありました。
ということで、プロジェクト諸々をDocker上にマウントしてコマンド実行できるようにしていきます。
なお、ここではGASをTypeScriptで書いたのちWebpackでビルドしたものをclaspコマンドでプッシュする流れです。
参考: https://qiita.com/rei-ta/items/61b3fde6a069b77d335d
まずは、Dockerの準備をしましょう。
Dockerのインストールは、WSLのホストであるWindows側に行えば良いようです。
Dockerfileを以下のように作成します。
FROM node:slim
RUN npm install @google/clasp -g
claspを実行する環境が必要なので、イメージとしてnodeを使います。
サイズが小さいほうが何かと便利なのでnode:slimを使っていますが、nodeが動けばなんでもよいかと思います。
また、claspを使えるようにインストールしておきます。
続いて、docker-compose.ymlを作成します。
version: "3"
services:
clasp:
build: .
tty: true
stdin_open: true
volumes:
- "/home/:/usr/src"
working_dir: /usr/src/${user}
clasp loginしたのち、認証情報がhome直下にできるため/home/${user}をマウントしています。
これで準備は完了。
Dockerを立ち上げていきます。
docker-compose run --rm -u ${id -u $usr} clasp /bin/bash
シェルが立ち上がったら以下のコマンドでログインします。
clasp login --no-localhost
これにて準備は完了です。
あとは、コードを書いてWebapckでビルドしたものをclasp pushしましょう。
[email protected]:$ clasp push
└─ /usr/src/path/to/project/appsscript.json
└─ /usr/src/path/to/project/bundle.js
Pushed 2 files.
問題なくプッシュできていますね。
これにて回避完了です。
手元の環境では、これにてofflineと怒られる問題を回避できました。
ちょっと手間ですが、ひとまずは回避できました。
同じような問題が起こっている場合は試して見てください。
今回は、ここまで。
おしまい
勉強したり手を動かした記録を「しきゆらの備忘録」(http://shikiyura.com)へ投稿している人。 Ruby/JavaScriptをよく書いている。いろんな言語に触れてみたい。新しい物・辛いもの好き。バグは愛すべきもの。一応社会人。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント