私は寓話的な敬虔なテンプレートプロジェクトで寓話のパワーパックを使用しようとしています。コンパイル中に警告が表示されます。ソースから寓話コンパイラをビルドして実行するには?
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と同じです。スクリプト実行時にエラーが発生します。