最近になって今更感かなりありますが、electron
や Node.js
を触り始めました。
パッケージを環境に導入するには、npm
コマンドを利用するのが当然だと思ってたんですが、
Yarn
というツールも存在している様ですね。いやー、この界隈全然詳しくないです。
Yarn
の方が高速だとかという話もあるので、Yarn
使っていこうかと思います。
インストール
Macへのイントールならhomebrew
使えば簡単ですね。以下実行!
brew install yarn
実行結果は以下の通りです。
$ brew install yarn Updating Homebrew... ==> Auto-updated Homebrew! Updated 2 taps (ethereum/ethereum and homebrew/core). ==> New Formulae azure-storage-cpp gitmoji i386-elf-gcc mesa ruby@2.4 um fluxctl healpix kubespy node@10 shellz fx i386-elf-binutils maven@3.5 resin-cli sourcedocs ==> Updated Formulae ・・・(中略)・・・ ==> Renamed Formulae mat -> mat2 ==> Deleted Formulae corebird heroku kibana@4.4 maven@3.0 maven@3.1 nethack4 pxz ruby@2.2 taylor tcptrack ==> Installing dependencies for yarn: icu4c and node ==> Installing yarn dependency: icu4c ==> Downloading https://homebrew.bintray.com/bottles/icu4c-62.1.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring icu4c-62.1.sierra.bottle.tar.gz ==> Caveats icu4c is keg-only, which means it was not symlinked into /usr/local, because macOS provides libicucore.dylib (but nothing else). If you need to have icu4c first in your PATH run: echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile For compilers to find icu4c you may need to set: export LDFLAGS="-L/usr/local/opt/icu4c/lib" export CPPFLAGS="-I/usr/local/opt/icu4c/include" ==> Summary 🍺 /usr/local/Cellar/icu4c/62.1: 250 files, 67.3MB ==> Installing yarn dependency: node ==> Downloading https://homebrew.bintray.com/bottles/node-11.2.0.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring node-11.2.0.sierra.bottle.tar.gz ==> Caveats Bash completion has been installed to: /usr/local/etc/bash_completion.d ==> Summary 🍺 /usr/local/Cellar/node/11.2.0: 3,936 files, 50.1MB ==> Installing yarn ==> Downloading https://yarnpkg.com/downloads/1.12.3/yarn-v1.12.3.tar.gz ==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/49970642/a4875000-e25c-11e8-88b4-45 ######################################################################## 100.0% 🍺 /usr/local/Cellar/yarn/1.12.3: 14 files, 4.7MB, built in 9 seconds ==> Caveats ==> icu4c icu4c is keg-only, which means it was not symlinked into /usr/local, because macOS provides libicucore.dylib (but nothing else). If you need to have icu4c first in your PATH run: echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile For compilers to find icu4c you may need to set: export LDFLAGS="-L/usr/local/opt/icu4c/lib" export CPPFLAGS="-I/usr/local/opt/icu4c/include" ==> node Bash completion has been installed to: /usr/local/etc/bash_completion.d
Windowsの場合は、Windows用のインストーラをダウンロードして実行してください。
インストール後は、一応バージョン確認を実施
$ yarn -v 1.12.3
Yarnの操作
Yarn
はnpm
で実行できる操作は、基本的にできるようです。
例えばプロジェクトの初期化をするなら
yarn init
詳細情報の入力を省略するなら以下です
yarn init -y
これでpackage.json.jsonが作成されます。
$ cat package.json { "name": "develop", "version": "1.0.0", "main": "index.js", "license": "MIT" }
開発環境に必要なパッケージをローカルインストールする(devDependenciesに追加したい時)には以下を実行します
yarn add [package] --dev
electron
を対象にするなら以下の通りです
$ yarn add electron --dev yarn add v1.12.3 info No lockfile found. [1/4] 🔍 Resolving packages... warning electron > electron-download > nugget > progress-stream > through2 > xtend > object-keys@0.4.0: [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... [4/4] 📃 Building fresh packages... success Saved lockfile. success Saved 124 new dependencies. info Direct dependencies └─ electron@3.0.10 info All dependencies ├─ @types/node@8.10.38 ├─ ajv@6.5.5 ├─ ansi-regex@2.1.1 ├─ array-find-index@1.0.2 ├─ asn1@0.2.4 ├─ asynckit@0.4.0 ・・・(中略)・・・ ├─ xtend@2.1.2 └─ yauzl@2.4.1 ✨ Done in 54.26s.
実行環境に必要なパッケージをローカルインストールする(dependenciesに追加したい時)には以下を実行します
yarn add [package]
electron-log
を対象にするなら以下の通りです
$ yarn add electron-log yarn add v1.12.3 [1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... [4/4] 📃 Building fresh packages... success Saved lockfile. success Saved 1 new dependency. info Direct dependencies └─ electron-log@2.2.17 info All dependencies └─ electron-log@2.2.17 ✨ Done in 0.74s.
これらを実行した後のpackage.jsonは以下の様になっています。
{ "name": "develop", "version": "1.0.0", "main": "index.js", "license": "MIT", "devDependencies": { "electron": "^3.0.10" }, "dependencies": { "electron-log": "^2.2.17" } }
ディレクトリ構成は以下の通りです。
ls -l total 88 drwxr-xr-x 138 yuki staff 4692 11 23 21:19 node_modules -rw-r--r-- 1 yuki staff 197 11 23 21:19 package.json -rw-r--r-- 1 yuki staff 37898 11 23 21:19 yarn.lock
まとめ
だいぶ単純な操作しかしてませんが、yarn
で npm
の代わり(+それ以上の操作)ができる様です。
これからはYarn
を利用していこうと思います。