npm-pkgbuild
TypeScript icon, indicating that this package has built-in type declarations

15.3.2 • Public • Published

npm License Typed with TypeScript bundlejs downloads GitHub Issues Build Status Styled with prettier Commitizen friendly Known Vulnerabilities Coverage Status

npm-pkgbuild

Create ArchLinux, RPM, Debian and Docker packages from npm packages.

usage

In a package directory execute

npm-pkgbuild --rpm --debian --arch --content /destination:build --publish /some/directory

This will create a arch, rpm and a debian package of the build dir.

upload package

npm-pkgbuild --arch --content build --publish 'https://my.package-service.com/binaries/linux/{{type}}/{{access}}/{{arch}}'

You can specify the package content in package.json.

{
  "pkgbuild": {
    "content": {
      "/some/location/" : { "base": "build" },
      "/etc/myconfig.json" : "sample-config.json",
      "/erc/secret" : { "name":  "secret", "mode": "600" },
      "/opt/myapp": [
        {
          "type": "npm-pack"
        },
        {
          "type": "node-modules",
          "withoutDevelpmentDependencies": true
        }
      ]
    },
    "hooks" : "pkg/hooks",
    "output": {
      "debian" : {},
      "rpm" : {},
      "arch" : {}
    },
  "dependencies": { "nginx" : ">=1.12" }
  }
}

content providers

Defining where the package content should come from.

files (default)

content from the file system

npm-pack

content as provided by npm pack

node-modules

content of all (production) dependencies

options: - withoutDevelpmentDependencies when to stip away dev dependencies (defaults to true)

shared configuration

You can import common configuration from other packages. See mf-hosting or mf-hosting-frontend modules.

API

Table of Contents

ContentProvider

Source of package content.

Parameters

  • definitions
  • entryProperties

Properties

asyncIterator

List all entries.

Returns AsyncIterable<ContentEntry> all entries

FileContentProvider

Extends ContentProvider

Content provided form the file system.

Parameters

name

Returns string name of the content provider

utf8StreamOptions

Type: Object

Properties

  • encoding BufferEncoding

packageNameMapping

What is the node name in the package eco-system

decodePassword

Decode a password

Parameters

Returns string plaintext password

FunctionDecl

Type: Object

Properties

extractFunctions

Extract shell functions from a given text.

Parameters

  • source AsyncIterable<string>

Returns AsyncIterable<FunctionDecl>

fieldProvider

Parameters

Returns Function

Expander

Type: Function

Parameters

Returns string

copyEntries

Copy content from source into destinationDirectory. Destination paths a generated without leading '/' (as for entry names too).

Parameters

  • source AsyncIterable<ContentEntry>
  • destinationDirectory string
  • expander Expander (optional, default v=>v)

NFTContentProvider

Extends ContentProvider

Content provided form the file system.

Parameters

name

Returns string name of the content provider

NodeModulesContentProvider

Extends ContentProvider

Content from node_modules. Requires .npmrc or NPM_TOKEN environment

Parameters

  • definitions
  • entryProperties

Properties

  • withoutDevelpmentDependencies boolean

name

Returns string name of the content provider

NPMPackContentProvider

Extends ContentProvider

Content from npm pack.

Parameters

  • definitions Object
  • entryProperties Object to be set for each entry

Properties

name

Returns string name of the content provider

pkgKeyValuePairOptions

Type: Object

fields

well known package properties https://www.archlinux.org/pacman/PKGBUILD.5.html

fields

fields

fields

BUILDAH

Extends DOCKER

Use buildah @see https://buildah.io

hookMapping

map install hook named from arch to deb

hookMapping

map install hook named from arch to rpm

DEBIAN

Extends Packager

Create .deb packages

prepare

Parameters

Returns Promise<boolean>

DOCKER

Extends Packager

docker image build

prepare

Check for docker presence.

Parameters

Returns Promise<boolean> true when docker executable is present

OCI

Extends Packager

Low level OCI compatible packager

Packager

Parameters

  • properties

tmpdir

Create tmp directory.

Returns Promise<string> directory path

prepare

Prepares artifact generation

Parameters

Returns Promise<{properties: Object, destination: string, tmpdir: string, staging: string}>

create

Execute package generation.

Parameters

Returns Promise<string> identifier of the resulting package

workspaceLayout

Returns {named: object, others: []}

prepare

Parameters

Returns Promise<boolean>

Packager

Base Packager

Parameters

tmpdir

Create tmp directory.

Returns Promise<string> directory path

prepare

Prepares artifact generation

Parameters

Returns Promise<{properties: Object, destination: string, tmpdir: string, staging: string}>

create

Execute package generation.

Parameters

Returns Promise<string> identifier of the resulting package

workspaceLayout

Returns {named: object, others: []}

prepare

Parameters

Returns Promise<boolean>

Field

Type: Object

Properties

PublishingDetail

Type: Object

Properties

createPublishingDetails

Parameters

Returns Array<PublishingDetail>

publish

Parameters

  • artifactIdentifier string
  • publishingDetail PublishingDetail?
  • properties Object?
  • logger function (any): void (optional, default console.log)

quoteFile

Parameters

  • name

RPM

Extends Packager

produce rpm packages

prepare

Check for rpmbuild presence.

Parameters

Returns Promise<boolean> true when rpmbuild executable is present

install

With npm do:

npm install npm-pkgbuild

license

BSD-2-Clause

Package Sidebar

Install

npm i npm-pkgbuild

Weekly Downloads

1,898

Version

15.3.2

License

BSD-2-Clause

Unpacked Size

129 kB

Total Files

43

Last publish

Collaborators

  • arlac77