parent-project

0.2.1 • Public • Published

parent-project

Generates package.json files from a YAML description. Currently does the same as all the other YAML to JSON converters, but will be extended with additional functionality.

Example

At a certain level of complexity, one wishes to use comments in npm project definitions. Simply rename package.json to package.yaml, add comments! Before executing any npm related command, simply transform the YAML document to JSON.

{
  "name": "my-project",
  "version": "0.1.0",
 
  # Finally, comments! 
  "dependencies": {
    "lodash": "*"
  }
}

Substitution

parent-project also supports variable substitution. Inside string values, you can use jsonpath syntax to reference other values in the same document.

{
  "name": "my-project",
  "version": "0.1.0",
 
  "dependencies": {
    "my-sub-component": "${version}",
    "external-component": "${config.repository}/external-component.git#dev"
  },
 
  "config": {
    "repository": "git+https://repo.example.com"
  }
}

If the string referencing a value contains other text (like $.dependencies.'external-component' in this example), then the value is converted to string and placed inside.

On the other hand, if the string contains nothing but a reference, then the hole value gets replaced. This allows you to reference hole objects like author or contributors.

While recursive variable substitution is supported, it should be used with caution.

Usage

$> npm install -g parent-project
$> parent-project package.yaml > package.json && npm install

This will convert a package.yaml file into the corresponding package.json to be read by npm install. Most likely you want to .gitignore but not .npmignore the generated file.

Changelog

0.2.1

  • Updated development environment to latest stable parent-project version
  • Fixed changelog rendering on GitHub

0.2.0

  • Variable substitution

0.1.1

  • Became self hosted by the latest stable version hosted on npmjs to translate the package.yaml project definition

0.1.0

  • Initial development
  • Published to npmjs

Package Sidebar

Install

npm i parent-project

Weekly Downloads

3

Version

0.2.1

License

Zlib

Last publish

Collaborators

  • ooxi