Help us understand the problem. What is going on with this article?

npm-scripts実行時の環境変数について

More than 5 years have passed since last update.

Grunt使うほどでもないんだけどなー、でもnpm-scriptsに書くには横に長くなるしなー、と思っていたらアドバイスをもらいました。

で、オレ的Gruntに対する最新の気持ちbin/build.shというところを見たらシェルスクリプトに直にbrowserifyと書いてあって、あれ、なんでbrowserify直接実行できるの、と思ってnpm-scripts実行時の環境変数について調べてみたりしました。

package.json
{
  "scripts": {
    "start": "env"
  }
}

調べてみました、と言ってもこれだけなのですけど。

Terminal
$ npm start

で出力させてみると、PATHの先頭に/Users/sasaplus1/.nodebrew/node/v0.10.28/lib/node_modules/npm/bin/node-gyp-bin(これはnodebrewを使ってるからかな)と/Users/sasaplus1/path/to/package/node_modules/.bin
が追加されてたり、npm_config_*が追加されてたりしました。

PATH/node_modules/.binが追加されてたからローカルにインストールしたモジュールでもscripts内ではモジュール名だけでコマンドが実行できてたんですね。(npm-scriptsを実行するときnpmがローカルにインストールしたモジュールのパスを勝手に解決してるのだと思っていた)

あとnpm_config_*系の環境変数も渡されるのでpackage.jsonにいろいろ設定値を書いて、シェルスクリプトに渡す、なんて使い方もできますね。使い方によってはかなり便利なんじゃないかなーと思ったのでした。まる。


ちなみに

Terminal
$ npm bin

とすると、そのディレクトリから近いnode_modules/.binまでの絶対パスを出力してくれる、というのを思い出したので一応。
ちゃんとしたnode_modules/.binまでのパスだったり、node_modulesがない場合はカレントディレクトリに対してnode_modules/.binを付加しただけのパスだったりするみたい?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした