yarnpkg/yarn

Yarn doesn't set `$npm_package_directories` env vars

Open

#2,886 建立於 2017年3月10日

在 GitHub 查看
 (3 留言) (2 反應) (0 負責人)JavaScript (41,514 star) (2,731 fork)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

貢獻者指南