NativeScript / NativeScript/nativescript-cli
`tns plugin add` fails when tns-android key is missing in package.json of the app
まだ誰も着手していません。
- 主要言語
- JavaScript
- スター
- 1.1k
- フォーク
- 204
- 平均マージ
- 1日 9時間
- マージ済み PR(30日)
- 8
説明
Did you verify this is a real problem by searching
Yes, here.
Tell us about the problem
I do a lot of plugin development ;-) I tend to do
tns plugin add ../src or tns plugin add pluginname-1.0.0.tgz
All of these will cause nativescript to throw a error
TypeError: Cannot read property 'version' of undefined
at PluginsService.getInstalledFrameworkVersion (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:261:29)
at PluginsService.isPluginDataValidForPlatform (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:265:48)
at PluginsService.<anonymous> (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:57:26)
at next (native)
at /usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:7:71
at __awaiter (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:3:12)
at action (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:56:83)
at PluginsService.<anonymous> (/usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:253:27)
at next (native)
at /usr/local/lib/node_modules/nativescript/lib/services/plugins-service.js:7:71
The issue is inserted in the package.json: "nativescript-pluginname": "file:<path to dir>",
When you attempt to get version numbers, "file:....." doesn't match and causes the above error.
Which platform(s) does your issue occur on?
Both
Please provide the following version numbers that your issue occurs with:
At least since TNS 3.0, still happening in 3.2
Please tell us how to recreate the issue in as much detail as possible.
tns plugin add ../src from a demo folder
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
lib/services/plugins-service.js から始め、特に PluginsService.getInstalledFrameworkVersion と isPluginDataValidForPlatform を確認してから、デモアプリで tns plugin add ../src を実行して再現します。アプリの package.json に tns-android キーがない場合に、file: 依存関係がどのように処理されるかを追跡します。どちらのプラットフォームでも、ローカルディレクトリおよび tarball からのプラグイン追加で undefined-version エラーが発生しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript
- 領域
- cli
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100