Composerでdev-masterを指定しているpackageの正確なバージョンの確認方法
結論
composerのパッケージのバージョンを調べるときは composer show -i packagename
する.
packagenameつけなかったりcomposer.lock見ても dev-master
で使っているパッケージの正確な名前はわからないので気をつけよう.
経緯
例えばこんな感じの composer.json があったとして,
{ "name": “test”, "description": “this is test server", "keywords": ["framework", "laravel"], "license": "", "type": "project", "require": { "intervention/image": "dev-master”, }, }
この部分 "intervention/image": "dev-master”,
の, dev-master
について.
dev-master
とは,このpackageのmasterブランチのことで、このバージョンを指定するとmasterの最新コミットが適用される.
つまり,最新機能が入っているけど不安定なものがインストールされてしまう.
この状態は障害を生みやすいので,動いている状態で一旦固めてしまうのが良い.
というわけで,このパッケージ intervention/image
の正式バージョン名を調べる.
バージョンを調べる
ダメだった方法
- composer.lock を見る
composer show -i
から目的パッケージを探して見る
よかった方法
composer show -i packagename
して目的パッケージの詳細情報を見る
ダメだった方法は2つは, - composer.lock を見る
{ "name": "intervention/image", "version": "dev-master", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", "reference": "e82d274f786e3d4b866a59b173f42e716f0783eb" }, ...略... },
composer show -i
から目的パッケージを探して見る
$ composer show -i …略… intervention/image dev-master e82d274 Image handling and manipulation library with support for Laravel integration
という感じで,composer.jsonに書ける形式のバージョンはわかりませんでした.
よかった方法は, composer show -i intervention/image
する方法.
$ composer show -i intervention/image name : intervention/image descrip. : Image handling and manipulation library with support for Laravel integration keywords : gd, image, imagick, laravel, thumbnail, watermark versions : * dev-master, 2.4.x-dev type : library …略…
versionsのところに, * dev-master
と 2.4.x-dev
が書かれている.
これの 2.4.x-dev
がいまインストールされているバージョンとわかる.
固定バージョンを適用する
バージョンがわかったらcomposer.jsonを以下のように書き換える.
{ "name": “test”, "description": “this is test server", "keywords": ["framework", "laravel"], "license": "", "type": "project", "require": { "intervention/image": "2.4.x-dev”, }, }
あとは $ composer update
すればOK!
2018.07に考えたキャリアプランメモがあったので忘れないように書いておく
直近(〜2018.10)
業務
- PHP,JS のスキルを伸ばす → 基礎の復習と実装の正確性
個人
- PHPで作成したwebアプリケーションのβ版リリース(〜7月16日まで)
- 画像処理講座の修了(7月中)
1年後(2018.11〜2019.6 = 26歳)
業務
- React.js, TypeScriptを業務で使用できるレベルまで引き上げる
個人
- AWSの機能いくつかを理解できるようになる
- 勉強会等での登壇
- プレゼン(軽いLT)などを抵抗なくできる
3年後(2019.7〜2021.6 = 29歳)
業務
- その時業務で使っている、フロントエンド技術の習得(緊急の対応時に呼んでもらえるくらい)
- リーダーとして小さめのチームのマネジメントができること
- バックエンド系の習得(webエンジニアとして、インフラ以外を一通り回せる)
- テクニカルディレクターへの足がけになるようなことができるといいな……
個人
- やりたいことを人にプレゼンできること
- 自分の専門技術を他の人に教育できること
- 今後の方針を決めること
5年後(2021.7〜2023.6 = 31歳)
業務
- チームマネジメントができること(中心に立ち、方向性を示していく役割が概ねできること)
- 会社では産休とか育休中の予定...
個人
- 自宅でできる仕事を取りながら職場復帰時に技術の遅れが出ないようにしたい
npm で TS2304 (Cannot find name '***') というエラーが出る時の原因と対処
エラー
npm -i
したらこんなエラーが.
node_modules/@types/superagent/index.d.ts:29:29 - error TS2304: Cannot find name 'Blob'. 29 type MultipartValueSingle = Blob | Buffer | fs.ReadStream | string | boolean | number; ~~~~ node_modules/@types/superagent/index.d.ts:116:14 - error TS2304: Cannot find name 'XMLHttpRequest'. 116 xhr: XMLHttpRequest; ~~~~~~~~~~~~~~
原因
- それぞれを呼ぶライブラリが足りなかったせい
解決
- オプション
--lib dom
を付けてインストールし直すことで,不足している標準ライブラリを一緒にインストールしてくれる
$ npm i --lib dom npm notice created a lockfile as package-lock.json. You should commit this file. + dom@0.0.3 added 1 package and audited 10248 packages in 4.722s found 0 vulnerabilities
参考
@types/superagent error TS2304: Cannot find name 'XMLHttpRequest'. #12044