2013-11-24 15 views
12

Tôi đang gặp sự cố thực sự khi bắt đầu với FunScript, tôi thực sự thích ý tưởng về F # -> Javascript nhưng liên tục thất vọng bởi số lượng thông tin/tài liệu về cách làm việc với công nghệ đẹp.Cách thực sự 'bắt đầu' với FunScript

Dưới đây là các vấn đề:

Các FunScript dự án (Không Hosting) mẫu không thể được cài đặt bởi vì: "Bạn cần NuGet cài đặt", VS nói khi tôi cố gắng để tải nó. // Dah, I do have Nuget and just updated it to latest release. I'm using VS2013 Ultimate.

tôi đã làm như sau:

Tôi tạo ra một Dự án Thư viện FSharp mới và sau đó tôi chạy lệnh Gói Maneger để nhận được FunScript Libs cần thiết:

PM> Install-Package FunScript 

mà làm việc tốt đẹp, nhưng sau đó. . . Khi tôi xem xét một ví dụ FunScript tôi thấy open FunScript.TypeScript trong chương trình hiện không tồn tại khi tôi gõ như nó nói TypeScript không định nghĩa, và xem xét các ví dụ FunScript.TypeScript cho khả năng sử dụng jQuery và tương tác với DOM . vì thế mà không có nó tôi không thể làm bất cứ điều gì ở đây

Tôi đã thông báo libs của bên thứ 3 trên NuGet cho FunScript thì:

FuncScript.TypeScript.Bindings.(lib|jquery) 

nhưng tôi có thể không tham khảo những người trong một "mở [namespace] " tuyên bố.

và cuối cùng, phải có một "thành phần Thời gian chạy ..." ở cuối chương trình. điều này cũng 'không được xác định'

Các bạn có một ví dụ FunScript hoàn chỉnh mà tôi có thể bắt đầu không? (Tôi đã tìm kiếm trên web rất nhiều, các chương trình tôi thấy đã không hoạt động với tôi)

+0

Bạn đã thử nhìn vào repo github cho funscript? https://github.com/ZachBray/FunScript/tree/master/Examples – mydogisbox

+0

Vấn đề này xuất hiện khi tải các ví dụ FunScript mới về github vào Xamarin Studio kể từ hôm nay. Giải pháp chính thức là gì? – Alexy

Trả lời

14

Xin lỗi, dự án vẫn còn hơi mỏng về tài liệu. Chúng tôi sẽ cố gắng cải thiện điều này sớm.

Tôi hiện đã cập nhật FunScript Visual Studio Project Template để xóa phụ thuộc của Trình quản lý gói NuGet. Từ v1.1.0.15 Nó sẽ hoạt động trên Visual Studio 2013. Lưu ý: bạn có thể cần phải xây dựng hai lần để khôi phục gói NuGet chính xác.

Bạn chỉ nhận trình biên dịch F # đến JS cơ bản (và một số ánh xạ nhà cung cấp kiểu FSharp.Data) trong gói NuGet chính. Nếu bạn muốn truy cập JavaScript thông qua các ràng buộc TypeScript, bạn phải thêm các tham chiếu đến các gói "Bindings" mà bạn đã đề cập.

Tên của các gói này không thực sự phản ánh bất kỳ vùng tên nào trong các hội đồng. Hiện tại, họ nhập các loại vào không gian tên chung (tức là chúng chỉ có sẵn trong intellisense mà không cần mở bất kỳ không gian tên nào). Trừ khi TypeScript chứa các mô-đun, trong trường hợp đó các hàm và kiểu được ánh xạ tới các không gian tên .NET tương ứng.

Ví dụ: Globals.alert(message) nên nhập-kiểm tra sau khi bạn đã thêm gói FunScript.TypeScript.Binding.lib NuGet.

Xin lưu ý, chúng tôi có thể di chuyển tất cả các định nghĩa này vào không gian tên FunScript.TypeScript trong tương lai để tránh làm ô nhiễm không gian tên chung.

Gọi do Runtime.Run(components) trong các ví dụ thực sự chỉ là một phương thức trợ giúp.Có lẽ chúng ta nên loại bỏ điều này khỏi các ví dụ, vì nó gây nhầm lẫn cho rất nhiều người. Phương thức duy nhất gọi bạn thực sự cần là Compiler.Compile(<@ main() @>, noReturn = true), biên dịch báo giá và trả về một chuỗi JavaScript. Sau đó, người dùng sẽ làm gì với JavaScript này (ví dụ: đặt nó vào trang được lưu trữ).

Tôi sẽ thêm tài liệu khác xung quanh bằng cách sử dụng FunScript khi tôi phát hành một dự án khác có tên là HashBang, sử dụng FunScript để tạo trang web có thể thu thập dữ liệu động. Điều này sẽ bao gồm các hướng dẫn từng bước để xây dựng và triển khai với HashBang/FunScript.

+0

Cảm ơn câu trả lời, tôi sẽ thử mẫu ngay bây giờ –

+1

@ZackBray Tôi vừa thử dự án, Như bạn đã nói, tôi phải xây dựng hai lần, tại thời điểm này, không có lỗi (cũng không cảnh báo) nhưng khi chạy chương trình , Tôi nhận được một "TypeInitializationException" được ném từ "FunScript.Data.Components", thông tin -> "Trình khởi tạo kiểu cho '. $ FunScript.Data.Components' đã ném một ngoại lệ." đây có phải là bản phát hành ổn định hay tôi nên đợi HashBang? –

+0

Nó chắc chắn là ổn định trong VS 2012 với F # v3.0. Tôi chưa thử nghiệm với VS 2013 và F # v3.1. Tôi chưa từng nghe về bất kỳ vấn đề nào khác xung quanh vấn đề này. Có vẻ như vấn đề đến từ ánh xạ nhà cung cấp loại FSharp.Data. Bạn có thể thử loại bỏ lắp ráp đó ngay bây giờ và tránh các nhà cung cấp loại nhà cung cấp dịch vụ/nhà cung cấp dịch vụ Ngân hàng Thế giới. Nếu không, hãy đợi một lúc cho đến khi chúng tôi sử dụng VS 2013. – ZachBray

4

Tôi đã có một entry mịn ...

đã qua sử dụng MS Visual Studio 2013 (chuyên nghiệp), với vani "FunScript - Không Hosted" mẫu dự án (do Zach Bary), có thể được tìm thấy thông qua các dự án trực tuyến Tìm kiếm.

Sau đó thêm các gói liên kết FunScript có liên quan (thông qua NuGet). Tôi đã thêm một số giải pháp của mình: FunScript.TypeScript.Binding.jquerymobile và FunScript.TypeScript.Binding.phonegap

Bạn có thể xem một số ví dụ của tôi trên GiHub (https://github.com/ZachBray/FunScript/tree/master/src/samples/EasyGettingStarted). Tất cả những gì bạn cần làm là thay thế Program.fs khỏi dự án mặc định (FunScript - Not Hosted). Và thêm phần còn lại của các tập tin. Tôi đang sử dụng như một cơ sở một số mã Zach Bray. Xem tập tin README trên liên kết ở trên.

Phải là trải nghiệm 5-10 phút cho bạn nếu bạn đã cài đặt MS VS 2013. Tôi đang trong quá trình gửi thêm ví dụ. Tôi khuyên bạn nên dùng Funscript.

0

Theo lời khuyên Zach ở trên, tôi đã tạo ra một làm việc (ít nhất là thời điểm viết bài) ví dụ dự án cho OSX và Xamarin Studio:

https://github.com/mfrawley/Funny

tôi thấy quá trình cài đặt hoàn toàn unintuitive nhưng bây giờ nó làm việc và thấy rất nhiều gói NuGet có sẵn, tôi rất vui mừng khi thấy điều này phát triển như thế nào.