Socket
Socket
Sign inDemoInstall

@expo/config-plugins

Package Overview
Dependencies
16
Maintainers
24
Versions
150
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@expo/config-plugins

A library for Expo config plugins


Version published
Weekly downloads
1.4M
increased by9.81%
Maintainers
24
Created
Weekly downloads
 

Package description

What is @expo/config-plugins?

The @expo/config-plugins package allows developers to customize and configure their Expo and React Native projects using JavaScript or TypeScript. This package provides an API for modifying the native app configuration files (like AndroidManifest.xml or Info.plist) programmatically, without having to eject from the managed Expo workflow. It enables the integration of native code and settings directly into an Expo managed project, making it easier to add custom functionality and configurations.

What are @expo/config-plugins's main functionalities?

Modifying app.json / app.config.js

This feature allows developers to programmatically modify the app's configuration. In this example, the Android app is given camera permissions by modifying the AndroidManifest.xml through the app.json or app.config.js file.

const { withPlugins, AndroidConfig } = require('@expo/config-plugins');

module.exports = withPlugins(myExpoConfig, [
  [AndroidConfig.Permissions.withPermissions, ['CAMERA']],
]);

Creating custom plugins

Developers can create custom config plugins to encapsulate and reuse configuration logic across multiple projects. This example demonstrates how to create a simple plugin that modifies the project configuration.

const { createRunOncePlugin, withPlugins } = require('@expo/config-plugins');

const withCustomPlugin = (config) => {
  // Modify the config.
  return config;
};

module.exports = createRunOncePlugin(withCustomPlugin, 'packageName', '1.0.0');

Integrating with native code

This feature enables direct modification of native project files, allowing for deeper integrations and customizations. The example shows how to use a dangerous mod to modify Android native files directly.

const { withDangerousMod } = require('@expo/config-plugins');

module.exports = function withCustomNativeCode(config) {
  return withDangerousMod(config, [
    'android',
    async (config) => {
      // Modify native Android files directly.
      return config;
    },
  ]);
};

Other packages similar to @expo/config-plugins

Readme

Source

Expo Config Plugins

The Expo config is a powerful tool for generating native app code from a unified JavaScript interface. Most basic functionality can be controlled by using the the static Expo config, but some features require manipulation of the native project files. To support complex behavior we've created config plugins, and mods (short for modifiers).

For more info, please refer to the official docs: Config Plugins.

Environment Variables

EXPO_DEBUG

Print debug information related to static plugin resolution.

EXPO_CONFIG_PLUGIN_VERBOSE_ERRORS

Show all error info related to static plugin resolution. Requires EXPO_DEBUG to be enabled.

EXPO_USE_UNVERSIONED_PLUGINS

Force using the fallback unversioned plugins instead of a local versioned copy from installed packages, this should only be used for testing the CLI.

Keywords

FAQs

Last updated on 10 Feb 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc