2017-01-11 24 views
0

私はここで は活字体

活字体

でカスタムUIのプラグインを作成しようとしているとNativeScriptカスタムUIのプラグインを作成し、私はローカルフォルダにプラグインプロジェクトを作成します
  1. を取っている段階だ
  2. プラグインプロジェクトのルートのカスタムUIのための
  3. 書き込み.TSファイル
  4. プラグインプロジェクトのルートにtscコマンドでファイル
  5. がTESに行くそれら.TSの外の.jsファイルを生成しますトンNativeScriptプロジェクトと実行tns plugin add <local plugin path>は、作成したプラグイン

を含むようにしかし、私は、インポート文を持っているので、

import { ContentView } from "ui/content-view"; 
 
import...

を次のように私はここでの例を参照し、手順3でコンパイルエラーが発生しますhttps://github.com/NathanWalker/nativescript-cardview/blob/master/cardview.ios.ts

私の質問は、「nativescript-cardview」の例のcardview.ios.tsがcardview.io.jsにコンパイルされていますか?これを行うことは不可能です...

答えて

0

このプラグインでは、作成者がデモアプリケーションを作成し、そのデモのtns-core-modulesの宣言ファイルを使用していることを参照しました。 TNS-コアmodules.d.tstsconfig.jsonに含まれているat this lineを見てあなたは、テストケースのため、あなたのリリースのためにあなたがtns-への相対パスを作成することができ、この慣行に従うことができます

あなたのpackage.jsonのサイドノートnoEmiOnErrorフラグとして行わhere

のようなアプリのnode_modulesフォルダからコア・モジュール(および参照)の宣言ファイルには、翻訳がエラーに掛かっせずに続行することができます。

+0

私はtypescriptプロジェクトのファイルを参照するのに慣れていませんでした。それは多くの助けになりました! –

0

レポにリンクしていただきありがとうございます。 NativeScript's docsは、 "トランスパイライラーを使用している場合、トランスポートされたJavaScriptファイルをプラグインに含めるようにしてください"と述べています。

あなたのpackage.jsonはentrypointとしてcardview.jsを指定していますが、翻訳されたJavaScriptファイルはレポに追加されていません。私はnativescript-midi pluginでこの問題を解決しました。\ distディレクトリにトランスファイルされたファイルをコミットします。プラグインはES 6で書かれていますが、消費のためにES 5に転送されます。 srcディレクトリとdistディレクトリが同期していることを確認するために、git pre-commitフックを使用して自動的にビルドコマンドを実行し、結果をコミットします。 nativescript-midi repoをクローンすると、.git/hooks/pre-commitで見ることができます。このアプローチをプラグインに使用する利点は、TypeScriptを使用していない開発者がこのアプローチを使用できることです。