Socket
Book a DemoInstallSign in
Socket

@foxitsoftware/gulp-merge-addon

Package Overview
Dependencies
Maintainers
14
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@foxitsoftware/gulp-merge-addon

A gulp plugin for merge multiple UIExtension addons into single JS file

0.7.7
latest
npmnpm
Version published
Maintainers
14
Created
Source

gulp-merge-addon plugin

You can use this plugin to merge UIExtension addons in a project without webpack and then import them like modules.

Import Example

import TextObjectAddon from '@addons/text-object/addon.info.json';

Getting started

To begin, you'll need to install gulp and this plugin:

npm i -D gulp @foxitsoftware/gulp-merge-addon

Configuration

gulfile.js

Add gulpfile.js in the root directory of your project if it has not been created:

const gulp = require('gulp');
const mergeAddon = require('@foxitsoftware/gulp-merge-addon');

const libPath = 'path/to/the/sdk/lib';

gulp.task('merge-addon', () => {
    return gulp.src([libPath + 'uix-addons/*/addon.info.json'])
    .pipe(mergeAddon({
        library: 'UIExtensionAddons',
        filename: 'merged-addons.js'
    }))
    .pipe(gulp.dest('./dist/'));
});

package.json

Add the following command in your package.json

{
    "scripts": {
        "merge-addon": "gulp merge-addon"
    }
}

Merge Addons

Now, you can merge UIExtension's addons by this command in the root directory of your project:

npm run merge-addon

Once done, the file /dist/merged-addons.js will be created.

Import merged addons

Now you can import addons like using normal modules:

import addons from './dist/merged-addons';

var pdfui = new UIExtension.PDFUI({
    addons: addons
    // ignored other irrelevant options
});

Options

  • options.library Type: string default: UIExtensionAddons All addons will be merged into a single UMD format bundle, and the value exports from the entry point(addons.js) will be assigned into the global scope via the name provided from this option. For more details, refer to webpack documentation https://webpack.js.org/configuration/output/#outputlibrary
  • options.filename Type: string default: merged-addons.js The file name of the bundle generated from this plugin;
  • progress Type: boolean default: true Report the progress information in your terminal.
  • watch Type: boolean default: false Turn on/off the watch mode. This mean that after the first time merge, this plugin will continue to watch for the changes in any of the resolved addon files.
  • watchOptions Type: object default: null Please refer to the webpack's documentation https://webpack.js.org/configuration/watch/#watchoptions
  • lazyInit Type: boolean default: false Setting this option value to true will generate a bundle that supports lazy initialization. This bundle exports a function instead of an array of addon classes, so that all addon classes can be initialized inside the PDFUI regardless of the loading order.

FAQs

Package last updated on 07 May 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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.