There is a feature from maven I miss a lot in package.json. In maven .pom file you can define variables in parent project and use them in child project\'s pom files.
Define a config object in package.json:
{
"name" : "myapp",
"config" : { "port" : "3000" },
...
}
And then you can access port value from scrips object with $npm_package_config_port
{
"name" : "myapp",
"config" : { "port" : "3000" },
"scripts": {
"start" : "node --harmony app.js $npm_package_config_port"
},
...
}
The source full article is here:
http://www.marcusoft.net/2015/08/npm-scripting-configs-and-arguments.html#npm-configuration
Any key can be referenced, beginning with $npm_package_
and adding an underscore for every level you go down.
Example:
{ "name": "appname", "version": "0.0.1"}
name can be access like: $npm_package_name
or ${npm_package_name}
to delimit within string
For windows user, name can access like: %npm_package_name%
On Windows, you should use %variable_name%
. For example:
{
"name": "app_name",
"version": "1.0.0",
"custom": {
"key": "any value"
}
}
You can get it using %npm_package_name%
, %npm_package_version%
and %npm_package_custom_key%
.