npm-pkgbuild

13.0.20 • Public • Published

npm License 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 AsyncIterator<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 AsyncIterator<string>

Returns AsyncIterator<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 AsyncIterator<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

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

hookMapping

map install hook named from arch to deb

hookMapping

map install hook named from arch to rpm

prepare

Parameters

Returns Promise<boolean>

Field

Type: Object

Properties

Packager

Parameters

tmpdir

Create tmp directory.

Returns Promise<string> directory path

execute

Execute package generation.

Parameters

  • sources
  • transformer
  • dependencies
  • options
  • expander

Returns Promise<string> location of the resulting package

workspaceLayout

Returns Object

prepare

Parameters

Returns Promise<boolean>

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,204

Version

13.0.20

License

BSD-2-Clause

Unpacked Size

92.9 kB

Total Files

23

Last publish

Collaborators

  • arlac77