はじめに
【Yarn】パッケージをオフラインでインストールするという記事に触発されて、npmパッケージのオフラインインストール用のツールyarn-offlineを作った。
npm自体はオフラインインストールに対応していないのでyarnを使う。
ディレクトリ構成
ツールのディレクトリ構成はこんな感じ。
yarn-offline
├── .gitignore
├── .yarnrc
├── CHANGELOG.md
├── LICENSE
├── README.md
├── offline-cache
│ └── .gitkeep
└── package.json
ツールのミソは.yarnrc。プロジェクトディレクトリの.offline-cache
フォルダにtarボールを保存するための設定をしてある。
.yarnrc
yarn-offline-mirror"./offline-cache"yarn-offline-mirror-pruningtrue
使い方
オンラインでの作業
まず、ツールをcloneする。
git clone https://github.com/kannkyo/yarn-offline
cd yarn-offline
次に、オンライン環境でyarnコマンドを実行する。
コマンド実行
yarn add <package_name>
# or
yarn add -D<package_name>
または、package.json
に手入力で所望のパッケージを記載し、yarn online:download
コマンドを実行する。
package.json
"devDependencies":{"cross-env":"^7.0.2",},"dependencies":{"express":"^4.17.1"}
yarn online:download
これで、offline-cache
ディレクトリにtarボールが保存される。
offline-cacheディレクトリ
offline-cache/
├── .gitkeep
├── @webassemblyjs-ast-1.9.0.tgz
...
└── yeoman-generator-2.0.5.tgz
オフラインでの作業
最後に、オフライン環境にyarn-offlineディレクトリを丸ごと移動してyarn offline:install
コマンドを実行する。
yarn offline:install
これでOK。
バージョン更新方法
offline-cache
を作ってからしばらくたつと、パッケージのバージョンを上げたくなることがある。
こんな場合はyarn online:upgrade
コマンドでバージョンアップが可能。
yarn online:upgrade
yarn online:download