-
Notifications
You must be signed in to change notification settings - Fork 4k
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
https://docs.npmjs.com/cli/v7/configuring-npm/package-json#config descrbes a way of having a config object in your package.json obect and optinally overriding it from your local config.
A "config" object can be used to set configuration parameters used in package scripts that persist across upgrades. For instance, if a package had the following:
{
"name": "foo",
"config": {
"port": "8080"
}
}
and then had a "start" command that then referenced the npm_package_config_port environment variable, then the user could override that by doing npm config set foo:port 8001.
The override appears to have stopped working in v7, it would appear from RFC 21 that this is intentional.
npm_package_config_* Each key in the config object will be included, but npm will not override values with a : config value if one exists.
However
- It is still listed as a feature in the docs.
- It is very useful and no indication of a suitable alternative has been provided.
Expected Behavior
I would like this behaviour to be re-introduced or an alternative way of doing the same thing provided.
Steps To Reproduce
- In this environment...
(npm version 7) - With this config...
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "node -p process.env.npm_package_config_test"
},
"config": {
"test":"It is NOT working"
},
"author": "",
"license": "ISC"
}
- Run '...'
npm config set test:test "It Is Working"
npm run test
- See error...
this is output
It is not working
Environment
Tested on
- OS: Windows 10
- Node: v14.15.1
- npm: 7.19.0