cat-compatibilitygood first issuehelp wantedtriaged
Description
Yarn does not match npm's behavior of setting env vars for all package.json keys.
Within the context of an npm script, npm sets an environment variable for all keys in package.json. This allows npm scripts to reference any other part of the package configuration. For instance:
"directories": {
"lib": "lib",
"src": "src"
},
"scripts": {
"build": "babel $npm_package_directories_src -d $npm_package_directories_lib"
}
Yarn, however, apparently sets many (most?) of the properties in package.json, but not the entire package. Specifically, none of $npm_package_directories_ are being set.
Npm:
$ npm run env | grep npm_package_dir
npm_package_directories_src=./src
npm_package_directories_example=./examples
npm_package_directories_doc=./docs
npm_package_directories_lib=./lib
Yarn:
$ yarn run env | grep npm_package_dir
(no output)
Steps to reproduce.
Within the following repo+branch: https://github.com/jasonkarns/testdouble.js/tree/npm-vs-yarn
npm run directories
yarn run directories
Versions:
$ yarn --version
0.21.3
$ node --version
v7.7.2
OS X 10.12.3