web-dev-qa-db-ja.com

非推奨のタイピングパッケージを手動で更新する方法

TypeScriptで記述しているNodeJSアプリケーションがあります。多くのNodeパッケージを使用します。これらのパッケージのすべてがTypeScript定義を持っているわけではないため、Typingsを使用して個別の定義ファイルを取得します。

実稼働サーバーにアプリケーションをデプロイすると、npm installtypings install、およびtscを実行するGitフックがあります。これらはGitリポジトリに含まれていないためです。

Typings定義ファイルの新しいバージョンがDefinitelyTypedでリリースされると、typings installを実行すると、定義ファイルが非推奨(更新、置換、または削除)であるという警告が表示されます。

 typings WARN deprecated 6/30/2016: "registry:dt/bluebird#2.0.0 + 20160319051630"は非推奨(更新、置換、または削除)
 typings WARN deprecated 「registry:dt/knex#0.0.0 + 20160622193910」は非推奨(更新、置換、または削除)
 typings WARN deprecated 2016/7/20:「registry:dt/node#6.0.0 + 20160613154055」は非推奨(更新、置換、または削除)
 typings WARN deprecated 2016/7/19: "registry:dt/lodash#3.10.0 + 20160619033623"は非推奨(更新、置換、または削除)

これについて何ができますか?それらをすべて更新する簡単な方法はありますか? typings.jsonファイルは、#記号の後にパッケージのバージョン番号を指定し、+記号の後に日付を指定しているようです。新しい定義ファイルがDefinitelyTypedにアップロードされた場合、通常は以前のバージョンよりも正確または完全であると想定しても安全ではありませんか?

パッケージごとにtypings uninstall --saveの後にtypings install --saveが続く以外に、これらを手動で更新するための認可された方法はありますか?面倒そうに思えますが、typings update [package-name]のような簡単な方法が必要です。

26
Travesty3

TypeScript 2.0で簡単

また、TypeScript 2.0、 2016年9月に正式にリリースされた には、npmに統合された簡単なソリューションがあります(Typings作成者およびTSD作成者と共同で)。本質的に@types/packageNameとして確定型パッケージを取得する場所:

npm install --save packageName @types/packageName

npmパッケージから直接型を自動的に取得することもできます。したがって、package.jsonnpmを使用して、タイプ定義を直接管理することができます。その場合

npm update

最初に要求した動作を正確に取得します。

詳細については、 ベータ発表のブログ投稿 および 公式のTypeScriptドキュメント を確認してください。


@typesからの重大な変更は警告をトリガーしません

ただし、TypeScriptチームのメンバー(Ryan Cavanaugh)が TypeScriptのベータ版発表 のコメントセクションで言及していることに注意してください。日付タイプ定義。 semverのメジャーアップデートでも。 lodashバージョン4のタイプ定義が必要であり、代わりにlodashバージョン3のタイプ定義が必要な場合、警告はありません。したがって、重大な変更を経たライブラリのタイプ定義を取得します。念頭に置いておく必要があるもの(編集:これが最終的な2.0リリースの場合であるかどうかを個人的にまだ確認していない。).

更新コマンドなし

更新コマンドはありません。それについて Typingsの問題 があり、unixとpowershellの両方のスクリプトが含まれており、何らかの種類の更新を自動的に行います。

特定のインストールコマンド

ただし、CLIオプションで確認できるように、特定のソースおよびsemver範囲で特定のパッケージのタイプ定義を更新できます。

ソースが明確に型付けされている場合、パッケージの前にdt~を付けます。一方、semverバージョン^3.10.0をお持ちの場合は、パッケージ名の末尾に@^3.10.0をさらに追加します。

それが通常の依存関係であるか開発依存関係であるかに応じて、それぞれ--saveまたは--save-devも追加します。グローバルな依存関係の場合は、--globalも追加します。これはtypings.jsonファイルで読み取り可能である必要があります

上記のlodashパッケージをsemverバージョン^3.10.0で最新の型定義に更新するには、次のように記述します。

typings install dt~lodash@^3.10.0 --save

または

typings install dt~lodash@^3.10.0 --save --global

グローバルな依存関係の場合。

これにより、typings.jsonのハッシュと日付が更新され、指定されたsemver範囲の最新の定義がインストールされます。更新が見つからない場合は、ファイルに変更はありません。この更新プロセスを自動化するように設定されている場合、これらの更新を関係なく実行しようとするスクリプトを作成できます。

注意事項

明確に型付けされた型定義は、必ずしもバージョンで正しくタグ付けされるとは限らないことに注意してください。タグ付きバージョンが完全に欠けているか、バージョン間に大きなギャップがある可能性があります。たとえば、タグなしバージョンが最新のタグ付きバージョンよりも新しい場合もあります。これは現在、確定入力(2016年6月25日)でのlodashの場合です。

次のコマンドを使用すると、特定のソースで特定のパッケージにどのタグ付きバージョンが存在するかを簡単に見つけることができます。

typings view <source>~<package> --versions

ソースとして確定型付きのパッケージlodashの場合、このようになります。

typings view dt~lodash --versions

couldより最新のタグなしバージョンを確認するには、Definitely Typedリポジトリで対応するディレクトリを実際に検査する必要があると思いますcouldは、最新のコミットで言及されるか、ファイルの先頭に記載されます。

27
Koslun