を投写します2つの関数間でコード(特にタイプ)を共有する方法はありますか?共有コードは、私は現在、VSコードuinsg F#Azureの機能を開発していると私のような私のプロジェクトを打ち出してきた
5
A
答えて
5
F#コンパイラはフォルダをうまくサポートしています。あなたは、Visual Studioがデフォルトの設定で、F#プロジェクトにフォルダを追加することを許可していないという事実を指しているかもしれません - それは本当の事実です。しかし、何らかの形でファイルを手動で編集するか、F# Power Toolsを使ってプロジェクトファイルにフォルダを追加すると、F#コンパイラは問題は発生しません。
しかし、スクリプト(fsx
)はコンパイル済みモジュール(fs
)と同じではないため、これはあなたのケースには関係ありません。スクリプトは、それらを一緒にバインドするプロジェクトを持っておらず、お互いのコードを使用するためにお互いに#load
する必要があります。そして#load
はどんな経路からでも実行できます。
たとえば、次のようにコードをレイアウトする場合がありますから明らかなように
// Function1/run.fsx
#load "../Common/Helpers.fsx"
let x = Helpers.someFunction()
:
ProjectFolder
-> Common
-> Helpers.fsx
-> Function1
-> function.json
-> run.fsx
-> Function2
-> function.json
-> run.fsx
そして、Function1/run.fsx
以内に、相対パスを使用してファイルHelpers.fsx
をロード上の例では、この方法で読み込まれたスクリプトは、ホストスクリプト内に、スクリプトファイルの後に名前が付けられたモジュールとして表示されます。
これは機能しますが、時間の経過とともに非常に乱雑になります。代わりにプリコンパイルされたコードを使うことを強くお勧めします。このようにして、共有ライブラリに共通コードを置き、両方の関数から参照することができます。
私は非常にお勧めしますthis recent video from NDC Oslo。これらのことなどについてはよく話します。
関連する問題
- 1. は、私はすべてのWeb開発のためのVSのコードを使用していますVSコード
- 2. 私は、現在のコードを使用しようとしているjQueryの
- 3. は、私が何をしようとしている私のコード
- 4. 私はsocket.ioを使用して、次のコードを発現し、有していセッション
- 5. 私は私のコードは、現在ある
- 6. C EXECV私はこのコードを理解しようとしている機能
- 7. は、私が現在持っている私のC#コード
- 8. は私のPHPコードでは、私はここで何をしようとしている私のPHPコード
- 9. 私はちょうど.netコードを開発していますか?
- 10. は、私が現在アプリケーションを開発していEclipseの
- 11. HTML - 私は現在、次のコードを使用してい
- 12. は、私はこのコードをしようとしているExpanableListAdapter
- 13. 打ち鳴らすは、私は次のコードを有するCONST伝播
- 14. 私は現在、このようなコード持っているのPython
- 15. は現在、私はこのコードを使用してiPhoneアプリ
- 16. 私は最近、名前空間を使用して開始し、現在、私はずっと、以下のようなコードにつまずいている
- 17. 共有は私がのWhatsAppするコンテンツを共有していたときに、
- 18. 共通のコードは、私がトップにbuild.gradle(モジュール)から共通のコードを抽出したいトップレベルのbuild.gradle(プロジェクト)
- 19. 私はVSのコードでこのエラーを取得していVSコード
- 20. 現在、私はこのコードを持っているHashSetの
- 21. 私のNSUserDefaultsコードが機能しない
- 22. 機能内の機能 - 毎回ですか?私たちはこのコードを持ってみましょう
- 23. は、私はVSコードでのキーバインドを割り当てたいVSコードでキーバインドに
- 24. 呼び出し解決機能は、私は次のコードを持っている
- 25. VSコードのフォーマットコードコマンドとショートカットShift + Alt + Fは機能しません
- 26. 私は私の力の機能は、このように設定している現在、2
- 27. 私のSPARQLクエリは、私は現在、私のクエリを実行しようとしていますすべての
- 28. PHP関数は*ので、ちょっとそれはPHPに来るとき、私はちょうど開始しているので、私はnoobのだ、と私は関数を使用してffmpegのコードを実行しようとしていますエラー
- 29. なし出力、私は私のコード
- 30. は、私は私のプロジェクトで打ち鳴らすをテストすることを決定したプロジェクト
スクリプトの代わりにAzure関数にfsproj(プリコンパイル済み)を使用することをお勧めします。特に、関数間でコードを共有したい場合。あらかじめコンパイルするだけの利点があります。 VS Azure関数プロジェクトは使用できませんが、必要はありません。 – TheQuickBrownFox