Fable.Package.SDK 1.3.0

dotnet add package Fable.Package.SDK --version 1.3.0                
NuGet\Install-Package Fable.Package.SDK -Version 1.3.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Fable.Package.SDK" Version="1.3.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Fable.Package.SDK --version 1.3.0                
#r "nuget: Fable.Package.SDK, 1.3.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Fable.Package.SDK as a Cake Addin
#addin nuget:?package=Fable.Package.SDK&version=1.3.0

// Install Fable.Package.SDK as a Cake Tool
#tool nuget:?package=Fable.Package.SDK&version=1.3.0                

Fable.Package.SDK

NuGet

Sponsors badge link

Fable.Package.SDK is a set of MSBuild targets and tasks that help you build and package Fable projects.

Features 🚀

  • Automatically add Fable specific tags to PackageTags based on the FablePackageType property
  • Automatically include F# source files in the package if needed
  • Check that at least one Fable target is defined in the PackageTags property
  • Set GenerateDocumentationFile to true
  • Set up your package for improving IDE experiences by setting:
    • DebugType to embedded
    • EmbedUntrackedSources to true

Installation

.NET CLI

dotnet add package Fable.Package.SDK

This will add the package to your project file.

<PackageReference Include="Fable.Package.SDK" Version="x.y.z" />
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    <PrivateAssets>all</PrivateAssets>
</PackageReference>

These rules are necessary to ensure that the package is not included in the final package, you don't want you package to depend on Fable.Package.SDK at runtime.

Paket

# In your paket.dependencies
nuget Fable.Package.SDK copy_local: true

# In your paket.references
Fable.Package.SDK

Usage

1. Set the FablePackageType property

Set the FablePackageType property in your project file to one of the following values:

  • library: If your package is a library that can be used by Fable.

    Examples of libraries could be Fable.Promise, Elmish, Thoth.Json, Feliz

    This will include the source files in the package.

  • binding: If your package consist of a set of API to make a native library available

    For example:

    • A package which makes an NPM package API available
    • A package which makes the Browser API available
    • A package which makes a cargo package API available

    <br/>

    Only the DLL will be included in the package, allowing for a faster build and smaller package size.

2. Specify the targets

Choose one or more of the following tags:

  • fable-dart: Dart is supported by the package
  • fable-dotnet: .NET is supported by the package
  • fable-javascript: JavaScript is supported by the package
  • fable-python: Python is supported by the package
  • fable-rust: Rust is supported by the package
  • fable-all: Package is compatible with all Fable targets.

[!WARNING] A package can be compatible with all targets if it depends only on packages that are also compatible with all targets.

A package compatible with all targets cannot be a binding, as these are target-specific.

Example:

If your package supports only JavaScript you need to use fable-javascript

If your package supports both JavaScript and Python, you need to use fable-javascript and fable-python

Example of use case

If your package is a binding which target JavaScript you need to write:

<PropertyGroup>
    <PackageTags>fable-javascript</PackageTags>
    <FablePackageType>binding</FablePackageType>
</PropertyGroup>

If your package is a library which targets JavaScript and Python you need to write:

<PropertyGroup>
    <PackageTags>fable-javascript;fable-python</PackageTags>
    <FablePackageType>library</FablePackageType>
</PropertyGroup>
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

  • .NETStandard 2.0

    • No dependencies.

NuGet packages (11)

Showing the top 5 NuGet packages that depend on Fable.Package.SDK:

Package Downloads
Thoth.Json

Elm-inspired encoder and decoder for JSON, this package is intended to be use on Fable side only. If you are interested on using it against .NET Core or .NET Framework, please use Thoth.Json.Net.

FsSpreadsheet

Fable compliant Spreadsheet creation and manipulation in FSharp

Thoth.Json.Core

Elm-inspired encoder and decoder for JSON, this package is the core library which can be used on any F# project. Pick the right additional package for your runtime: - Thoth.Json.JavaScript - Thoth.Json.Python - Thoth.Json.Newtonsoft

Thoth.Json.Newtonsoft

Elm-inspired encoder and decoder for JSON, this package is for .NET runtime when you want to use Newtonsoft.Json.

Thoth.Json.JavaScript

Elm-inspired encoder and decoder for JSON, this package is for JavaScript runtime.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.0 598 10/21/2024
1.2.0 132 10/20/2024
1.1.0 392 10/2/2024
1.0.0 1,676 7/27/2024
0.1.0 1,745 6/2/2024

## 1.3.0

### 🐞 Bug Fixes

- Add sources files only when packaging the package so we don't impact IDE ([908bc9c](https://github.com/easybuild-org/EasyBuild.FileSystemProvider/commit/908bc9c49c6b15bedbae0bbe9c9d77cd07961d14))