FirebaseUIをビルドするための環境をDockerで作る
はじめに
firebaseuiを多言語で使うには各言語用にビルドされたものが必要で、<script>
タグでCDNから取得する場合は手間ではないんだけど、node環境などimport
して使いたければ自前でビルドする必要があって面倒くさい。
https://github.com/firebase/firebaseui-web#developer-setup
パッケージの更新や、日本語以外の対応が必要になった際に動きやすいよう、Dockerでfirebaseuiのビルド環境を作った。
なお、firebaseuiを日本語化する方法を解説した記事で、firebaseui-ja
なるnpmパッケージを使っているのをちょくちょく見かけるけど、あれはFirebaseの公式パッケージではない。 2年前の初回登録以降メンテナンスはされていないようで、公式のfirebaseuiとはけっこうバージョンが離れている。
https://www.npmjs.com/package/firebaseui-ja
Dockerfile
FROM node:15-buster-slim
WORKDIR /node
RUN mkdir -p /usr/share/man/man1
RUN apt-get update \
&& apt-get install -y git curl default-jdk
RUN npm install -g n
RUN n 8.17.0
RUN git clone --depth 1 https://github.com/firebase/firebaseui-web.git
ポイント
FROM node:15-buster-slim
WORKDIR /node
RUN mkdir -p /usr/share/man/man1
RUN apt-get update \
&& apt-get install -y git curl default-jdk
RUN npm install -g n
RUN n 8.17.0
RUN git clone --depth 1 https://github.com/firebase/firebaseui-web.git
Docker環境を作る際に引っかかったポイントは次の2点。
最新のnode環境では、node-sass がビルドエラーになる
firebaseui-web
が依存しているgulp-sass:4.1.0
が、node-sass:4.8.3
に依存しており、最新のnode環境ではビルドできない。
node-sass のバージョンを上げるか、nodeのバージョンを下げる必要がある。
今回はnodeのバージョンを下げることで対応した。
node-sass:4.8.3
に対応させるためには、node 8 まで下げなければいけないらしい。
node8系の最終バージョンである8.17.0にダウングレードした。
RUN npm install -g n
RUN n 8.17.0
[参考]
https://qiita.com/ymasaoka/items/ab18c49a9074973ef75a
jdkが必要
firebaseuiのビルド条件は次のように指定されている。
Node.js (>= 6.0.0)
npm (should be included with Node.js)
Java SE Runtime Environment 8
なので、default-jdk
をインストールしようとしたのだけど、うまくいかない。
対応策を調べてみると、/usr/share/man/man1
というディレクトリを作成すると問題が回避できるらしいので、この処理をapt-getの前に行う。
RUN mkdir -p /usr/share/man/man1
RUN apt-get update \
&& apt-get install -y git curl default-jdk
[参考]
https://qiita.com/SHinGo-Koba/items/a73e5f345c22c5ebbf96
ビルドする
環境が整えば、あとはマニュアル通りの手順でビルドできる。
npm install
npm run build build-npm-ja
ja
の部分を好きな言語コードに変更すれば、各言語版ができる。
dist
ディレクトリの中に、npm__ja.js
が作成されているので、これをimportして使う。
typescript用の型定義index.d.ts
も作られている。
# ls ./dist/
externs index.d.ts npm__ja.js
import firebaseui from './npm__ja'
できあがり!
Author And Source
この問題について(FirebaseUIをビルドするための環境をDockerで作る), 我々は、より多くの情報をここで見つけました https://qiita.com/tashinoso/items/9aa442b7d7ea9349700b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .