Yarn workspaces から Lerna に移行した時の知見です。 やや書きかけ項目です。 前提 とあるサービスを提供しており、モノレポで運用している。使用スタックは主に API の Ruby on Rails で GraphQL の API サーバーを構築し、そのフロントエンドを React/ReactNative で作成している。 もともとは別々のリポジトリだったが、提供サービスが増えてくるに従い、下記の問題点が出てきた。 CI/CD パイプラインを一々作成する必要があり、反映にも手間がかかる GraphQL の型定義やユーティリティ、細かいところでは Git の Hook など、再利用したいものがある GitHub への招待などが手間になる そこで、この記事を書く半年前くらいにリポジトリを統合し、モノレポになった。 Rails と それ以外 (TypeScript) でフォル
こんにちは、フロントエンドエキスパートチームの小林(@koba04)です。 本記事では、Lerna と Yarn Workspaces を使った Monorepo 管理について解説します。 Monorepoとは 本記事では、単一のリポジトリで複数のモジュールやパッケージ(今回の場合は npm パッケージ)を管理する手法を Monorepo と呼んでいます。 有名なところだと、Babel や Jest、Create React App などが後述する Lerna を使い複数パッケージを単一のリポジトリで管理しています。 他にも React も Lerna は使っていませんが単一リポジトリで複数パッケージを管理しています。 また、上記のようなライブラリ以外にも企業で利用している npm パッケージを Monorepo として管理している例もあります。下記は Shopify の例です。 pack
Yarn にはワークスペースという機能があり、これを使うとひとつのリポジトリで複数の npm パッケージを開発できるようになり、効率的に作業を進められるようになる。 この記事の内容は、Yarn のv1.22.4で動作確認している。 シンボリックリンクが作られ、パッケージをまたいだ開発をしやすくなる ワークスペースをつかうためには、リポジトリのルートディレクトリにpackage.jsonを作成し、workspacesフィールドを指定する必要がある。 また、このディレクトリをパッケージとして公開することはないので、privateフィールドをtrueにしておく。 { "private": true, "workspaces": ["project-a"] } 上記の例では、project-aというディレクトリを、ワークスペースの対象としている。 次に、以下の内容の./project-a/pack
追記(2019/03/18): yarn-toolsからyarn-deduplicateが独立して使いやすくなり、 --strategy でdedupeの方法を選べるようになっています。タイトルも変更しました。 yarnpkg(1) を使って依存関係を管理しているとき、 yarnpkg upgrade-interactive は対話的にライブラリのアップデートができるので大変便利です。しかし、これを実行すると yarn.lock に不必要に重複エントリが作られることがよくあります。 nodejsで実行するケースでは重複があっても問題がないことが多いのですが、 クライアントサイドでは重複があると単純にファイルサイズが大きくなり。また、@types/* や react, jquery といったフレームワークはどの環境でも動作に問題が出たりするので、重複エントリは問題です*1。そこで今までは、
概要 お世話になったnode8系が2019/12に寿命を迎えます そのため、node (v8.7.0) → (v12.13.0)に変更しましたが、いろいろとエラーが出たためそのメモ書きです。 (使っているmoduleによって個人差が出るため完全に自分のための覚書です) アップグレード方法 $ yarn : : Error: Missing binding /path/to/project/node_modules/node-sass/vendor/darwin-x64-64/binding.node Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 10.x Found bindings for the following environments: - OS
TL; DR: yarn v1 の場合、 yarn.lock から当該のパッケージのセクションを削除して yarn install すればアップグレードできる。 2021年9月9日追記: yarn v2 以降では yarn up -R パッケージ でアップグレードできるようになった。 困ったこと GitHub にソースコードをホストしているとある npm パッケージにおいて、 GitHub の Security Alerts が fstream < 1.0.12 の脆弱性を報告した。 yarn upgrade fstream で最新バージョンにアップグレードしようとしたが…… $ cd my_npm_pkg $ yarn upgrade fstream yarn upgrade v1.16.0 [1/5] 🔍 Validating package.json... [2/5] 🔍 Res
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く