2017-10-25 9 views
2

私は寓話的な敬虔なテンプレートプロジェクトで寓話のパワーパックを使用しようとしています。コンパイル中に警告が表示されます。ソースから寓話コンパイラをビルドして実行するには?

warning FABLE: Nested option in option won't work at runtime 

コンパイル済みのコード(テスト時の救急訓練コードの使用)も機能しません。

コード:

function openCursor(index, keyCursor, range, direction, step) { 
     var range_1 = range != null ? range : null; 
     var direction_1 = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_2_4_fable_core_Util__["y"/* toString */ 
     ])(direction != null ? direction : DBCursorDirection.Default); 
     var step_1 = step != null ? step : 1; 
     var request = keyCursor ? index.openKeyCursor(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_2_4_fable_core_Util__["x"/* some */ 
     ])(range_1), direction_1) : index.openCursor(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_2_4_fable_core_Util__["x"/* some */ 
     ])(range_1), direction_1); 

range_1は、何ら問題nullでないが

Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_2_4_fable_core_Util__["x"/* some */])(null) 

戻り{}の代わりに不定、それは未定義を返す場合(:

let openCursor(index: Browser.IDBIndex, keyCursor: bool, range: Browser.IDBKeyRange option, direction: DBCursorDirection option, step: uint32 option) = 
    let range = defaultArg range Unchecked.defaultof<Browser.IDBKeyRange> 
    let direction = (defaultArg direction DBCursorDirection.Default).ToString() 
    let step = defaultArg step 1u 
    let request = 
     match keyCursor with 
     | false -> index.openCursor(range, direction) //warning here 
     | true -> index.openKeyCursor(range, direction)//warning here 

はに変換またはnull?)それは問題ありません

openCursorがに翻訳され

パワーパックプロジェクトをクローン化し、それが動作しますが、私はそれが(寓話elmishテンプレートから1.2.4)異なるDOTNET-寓話を使用して見ることができました

function openCursor(index, keyCursor, range, direction, step) { 
    var range_1 = range != null ? range : null; 
    var direction_1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_2_0_beta_003_fable_core_Util__["f" /* toString */])(direction != null ? direction : DBCursorDirection.Default); 
    var step_1 = step != null ? step : 1; 
    var request = keyCursor ? index.openKeyCursor(range_1, direction_1) : index.openCursor(range_1, direction_1); 

はそう(ダウングレードするpaket.lockを変更しましたfable-powerpackの1.2.0-beta-005)、ドットネットリストアを行った。

今では(多分寓話は、パワーパックが使用する寓話のバージョンでは動作しないことができ反応する)エラーで全くコンパイルされません。

ERROR in /home/harm/.nuget/packages/fable.react/1.2.1/fable/Fable.Helpers.React.fs /home/harm/.nuget/packages/fable.react/1.2.1/fable/Fable.Helpers.React.fs(588,53): (588,62) error FSHARP: The type 'ParamList' is not defined. @ ./src/App.fs 5:0-107 @ ./src/sale.fsproj @ multi (webpack)-dev-server/client? http://localhost:8080 webpack/hot/dev-server ./src/sale.fsproj

Fable compilerをクローン化し、それを構築するには、(nugetパッケージを生成しますが、いくつかはありませんバイナリを持つフォルダ)。ビルドに連結された寓話パワーパックで

ln -s ../Fable/build/fable ./fable 

そして

(のIndexedDBのProgram.fsを使用するように変更テスト/ Main.fsとTests.fsproj)パワーパックのIndexedDBを構築しようとしました
dotnet ./fable/dotnet-fable.dll yarn-run pretest 

動作しません。確かに十分に次のいずれか

ERROR in ./src/IndexedDB.fs Module not found: Error: Can't resolve '../../../.nuget/packages/fable.core/1.2.0-beta-003/fable-core/Option' in '/home/harm/dev/fable-powerpack/src' @ ./src/IndexedDB.fs 9:0-102 @ ./tests/Program.fs @ ./tests/Main.fs @ ./tests/Tests.fsproj

ERROR in ./src/PromiseSeq/Module.fs Module not found: Error: Can't resolve '../../../../.nuget/packages/fable.core/1.2.0-beta-003/fable-core/Option' in '/home/harm/dev/fable-powerpack/src/PromiseSeq' @ ./src/PromiseSeq/Module.fs 10:0-99 @ ./src/PromiseSeq/Extensions.fs @ ./tests/Program.fs @ ./tests/Main.fs @ ./tests/Tests.fsproj

ディレクトリ~/.nuget/packages/fable.core/1.2.0-beta-003/fable-core/が存在しますが、相対パスが間違っていると思います。また、どこから1.2.0を入手すれば、Fableビルドのフェイブルコアはバージョン1.3.0-beta-002なので、何らかの理由でdotnet-fableバージョン1.3.0-beta-002を使用していても、コンパイルするビルドによって生成されたフェイブルコアは使用されません。

paket.lockを使用してdotnet-fableですか?そうであれば、なぜFableビルドでは、ファイルのコピー/リンクやpacket.lockの混乱に関して次の3日間を費やしたくない場合にインストールする必要があるため、Fableはナゲットパッケージを提供しないのですか?

フェイブルコンパイラには、実際の使用方法に関する説明がありません。私はそれをコンパイルすることができますが、それはナゲットを生成しないので、それをインストールする方法はありません。バイナリを直接実行しても動作しないようです。

fableコンパイラgit repoの最新ビルドで生成されたバイナリを使ってプロジェクトをビルドし、それをプロジェクトに使う方法はありますか?私はpaket.dependenciesを変更することで、新しいバージョンをインストールしてみました

source https://www.nuget.org/api/v2 

nuget Fable.Compiler 1.3.0-beta-002 beta 
nuget FSharp.Core 
nuget Fable.Core prerelease 
nuget Fable.Import.Browser 

clitool dotnet-fable 1.3.0-beta-002 

group Build 
framework: net46 

    source https://nuget.org/api/v2 
    nuget FSharp.Core redirects:force, content:none 
    nuget FAKE 

その後は

dotnet restore 

次のコマンドを試してみましたので、試してみました何もしていないようだそれ:

mono .paket/paket.exe update 

これで、paket.lockが次のように変更されました。

dotnet-fable (1.3.0-beta-002) - clitool: true 
    ... 
Fable.Compiler (1.3.0-beta-002) 
    ... 
Fable.Core (1.3.0-beta-002) 

しかし、まだDOTNET寓話は1.3.0を実行しません。

[[email protected] fable-powerpack]$ dotnet fable yarn-run pretest 
Fable (1.2.0-beta-005) daemon started on port 61225 

ソースがまだそうちょうどそれの地獄のための寓話コア1.2.0でtranspiledされ、再び次のコマンドを試してみました:

dotnet restore 

そして今はtranspileしよう:

[[email protected] fable-powerpack]$ dotnet fable yarn-run pretest 
Fable (1.3.0-beta-002) daemon started on port 61225 

ことRESU動作しません

WARNING in ./src/IndexedDB.fs 
157:30-34 "export 'Some' was not found in '../../../.nuget/packages/fable.core/1.2.0-beta-003/fable-core/Util' 

とコードを:警告でLTS

TypeError: __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_2_0_beta_003_fable_core_Util__.Some is not a constructor at openCursor (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:3527:191) at IDBObjectStore_openCursorAsync (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:3668:10) at file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:4685:123 at file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:4642:28 at Object.then (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:1936:22) at IDBOpenDBRequest.request.onsuccess (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:3803:36) 
message 
: 
"__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_2_0_beta_003_fable_core_Util__.Some is not a constructor" 
stack 
: 
"TypeError: __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_2_0_beta_003_fable_core_Util__.Some is not a constructor↵ at openCursor (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:3527:191)↵ at IDBObjectStore_openCursorAsync (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:3668:10)↵ at file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:4685:123↵ at file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:4642:28↵ at Object.then (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:1936:22)↵ at IDBOpenDBRequest.request.onsuccess (file:///home/harm/dev/fable-powerpack/build/tests.bundle.js:3803:36)" 
__proto__ 
: 
Error 

はまだ頑固寓話コアを試みる1.2.0

ので、このバージョンを探して:

[[email protected] fable-powerpack]$ grep -rl "1.2.0.beta.003" 
obj/fsac.cache 
tests/obj/project.assets.json 
tests/obj/fsac.cache 
build/tests.bundle.js 

tests/obj/project.assets.jsonには5400本以上の回線がありますので、その回線を使用しないでください。

はそうしようとした、次のようである

[[email protected] fable-powerpack]$ cd tests/ 
[[email protected] tests]$ mono ../.paket/paket.exe update 
[[email protected] tests]$ dotnet restore 

はそのの世話をするために:

[[email protected] fable-powerpack]$ grep -rl "1.2.0.beta.003" 
obj/fsac.cache 
tests/obj/fsac.cache 
build/tests.bundle.js 

を...

最新の寓話使用するようだが、最新の寓話がにコンパイル

function openCursor(index, keyCursor, range, direction, step) { 
    var range_1 = range != null ? range : null; 
    var direction_1 = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_0_beta_002_fable_core_Util__["g" /* toString */])(direction != null ? direction : DBCursorDirection.Default); 
    var step_1 = step != null ? step : 1; 
    var request = keyCursor ? index.openKeyCursor(new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_0_beta_002_fable_core_Util__["f" /* Some */](range_1), direction_1) : index.openCursor(new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_0_beta_002_fable_core_Util__["f" /* Some */](range_1), direction_1); 

1.2.4と同じです。スクリプト実行時にエラーが発生します。

答えて

0

コンパイルされたJavaScriptのネストされたオプションの警告とエラーは、solvedです。

paket依存関係をインストールする(paket.dependenciesからバージョンを取得し、paketを再作成します)。)ロック:

mono .paket/paket.exe update 
dotnet restore 

paket更新があなたにタイムアウト例外を与えた場合は、paket更新する前にこのコマンドを試すことができます:

あなたがテストdirecectory

で再び dotnet restoreを実行する必要がある。この場合
export PAKET_RESOLVER_TASK_TIMEOUT=-1 

関連する問題