yarnpkg/yarn

Yarn doesn't set `$npm_package_directories` env vars

Open

#2,886 opened on 2017年3月10日

GitHub で見る
 (3 comments) (2 reactions) (0 assignees)JavaScript (41,514 stars) (2,731 forks)batch import
cat-compatibilitygood first issuehelp wantedtriaged

説明

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

コントリビューターガイド

Yarn doesn't set `$npm_package_directories` env vars · yarnpkg/yarn#2886 | Good First Issue