1.21.13 • Public • Published
PCF Build Scipts


This package contains the scripts required to build a custom PowerApps Component Framework (PCF) control for Microsoft PowerApps. The scripts are designed to be used in conjunction with the Microsoft Power Platform CLI tool, which is separately available via an MSI installer.

Please visit the publicly available documentation for the Microsoft Power Platform CLI tool to learn more. You can also install the Power Platform CLI via its MSI installer.

Without Microsoft Power Platform CLI tool this package should only be used for reference purposes.

Release Notes:


  • added 'npm run lint:fix' to auto-fix linting errors
  • replace esbuild-loader with babel-loader for js/ts transpilation to fix invalid bundle issue


  • added 'npm run lint' as separate script task, and wired into build/rebuild
  • fix: surface all build and lint errors and fail npm run build


  • faster bundle build: replace babel-loader with esbuild-loader and use esbuild minification
  • support PCF controls with objectType and propertyDependencies in manifest
  • webpack, style-, css- and sass-loader are all listed as runtime dependencies of pcf-scripts


  • create bundle with css and sass loaders in generated webpack config


  • fix eslint errors falsely flagging PCF's ComponentFramework class as undefined


  • support for React(virtual) and Fluent UI code components using platform libraries.
  • support yarn 2.x support for virtual file system instead of node_modules


  • bundler build step now using webpack 5.x (updated from 4.x) also updated its dependencies to the current versions


  • when building PCF control, force bundle to always be a single chunk


  • updated PCF control package.json templates to more modern version (webpack still on v4)
  • NOTE: typescript module has been removed as runtime dependencies to yield smaller bundles, but this now requires it to be added as a devDependecy: npm install --save-dev typescript


  • Gracefully handle telemetry connection errors
  • TypeScript is now correctly a devDependency


  • fix namespace for Lookup property
  • external-service-usage for premium code components and their domains
  • support for new property type 'Lookup.Simple'; see https://aka.ms/pcftypes
  • support for new property type 'MultiSelectOptionSet'


  • error in compile task now correctly sets exit code != 0
  • cross platform support fixes


  • Allow 'hidden' as a PCF property attribute
  • Manifest validation will use the word "problem" instead of "error" to avoid MSBuild misinterpretation


  • Changes to ControlManifest.Input.xml
    • All of the resources except, "code" will take in an optional parameter as "outputDirectory".
    • This parameter when provided will copy the files to that path post build.
    • Only when the user provides "outputDirectory" param for any resource, the resource files will be placed into that folder post build and override the path present in "path" parameter.
    • Also, for "library", the optional 'outputDirectory' param is available for "packaged_library" node.
    • These changes will not affect existing behavior.


  • Add 'File' to the list of allowed property datatypes
  • Support for 'common-property' in ControlManifest and test harness
  • Propagate changes in the width & height in the top container to changes in the underlying properties


  • Virtual control disabled for PCF controls, not fully supported yet


  • Localization updates
  • Enable virtual controls development
  • Added functionality to have a template override one of the "parent" files; for virtual controls, that is the package.json file
  • Control manifest:
    • Support boolean attribute "hidden"
    • Support external-service-usage element which declares whether this is a premium PCF control
  • Updated the version of PCF shipped


  • Improved code validation on users control source code that helps avoiding runtime errors


  • Production builds that generate bundle sizes larger than 5 MB will result in a build failure
  • Properties defined in ControlManifest.Input.xml must now define the 'usage' attribute


  • Added anonymous telemetry to pcf; to opt out use PowerApps CLI, see: PowerApps CLI telemetry
  • Bug fixes:
    • Fix webpack build error when using TS path mappings based module resolution


  • Improved manifest validation for controls with datasets
  • Fixed issue with preserving nested subfolder structure for control resources in the output folder


  • React is no longer treated as an external library. Now tooling can bundle it directly with the custom component source code.
  • When building, relative paths used in the manifest are now preserved when generating the control output folder. For example, if a resource file is located in a control folder\css\subfolder, this subfolder path will be created in the output folder during build.
  • In support for future library sharing capabilities, we are removing the need for library definition in the ControlManifest.Input.xml. This will impact previously created components using library tag (please remove all libraries from the ControlManifest.Input.xml and replace them with an import statement in the index.ts).
  • Control author can include a preview image by setting the preview-image attribute in manifest's <control> node.
  • PCF UI is localized for: English, French, German, Japanese, Spanish


  • PCF build output enhancements include:
    • Colorization
    • Timestamps
    • Formatting updates
    • PCF build now produces formal error codes in conjunction with error messages


  • Initial set of capabilities for custom control development using the PowerApps Component Framework (PCF).


npm i pcf-scripts

DownloadsWeekly Downloads






Unpacked Size

1.4 MB

Total Files


Last publish


  • powerapps-admin