JSPM

npm-pkgbuild

10.9.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1342
  • Score
    100M100P100Q118172F
  • License BSD-2-Clause

create ArchLinux, RPM and Debian packages from npm packages

Package Exports

  • npm-pkgbuild

Readme

npm License minified size downloads GitHub Issues Build Status Styled with prettier Commitizen friendly Known Vulnerabilities Coverage Status

npm-pkgbuild

Create ArchLinux, RPM and Debian 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

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-hoting module as an example.

API

Table of Contents

ContentProvider

Source of package content.

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

NodeModulesContentProvider

Extends ContentProvider

Content from node_modules

Parameters

  • definitions
  • entryProperties

name

Returns string name of the content provider

NPMPackContentProvider

Extends ContentProvider

Content from npm pack.

Parameters

  • definitions
  • entryProperties

name

Returns string name of the content provider

pkgKeyValuePairOptions

fields

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

fields

fields

hookMapping

map install hook named from arch to deb

hookMapping

map install hook named from arch to rpm

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

decodePassword

Decode a password

Parameters

Returns string plaintext password

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.

Parameters

  • source AsyncIterator<ContentEntry>
  • destinationDirectory string
  • expander Expander (optional, default v=>v)
  • attributes Array<ContentEntryAttribute>

install

With npm do:

npm install npm-pkgbuild

license

BSD-2-Clause