web-dev-qa-db-ja.com

NPMが.binディレクトリーを作成しない

Mac OS X 10.9.2npm v1.4.4およびnode v0.10.25を使用しています。

私は最近ノードとnpmをアップグレードしましたが、今はnpm installは、node_modulesに.binディレクトリを作成しなくなりました。

Node_modulesを削除しました。npm installですが、ディレクトリとバイナリは作成されません。

これがなぜ起こっているのかについて誰かが何か考えを持っていますか?

これが私のpackage.json

{
  "name": "redacted",
  "author": {},
  "description": "redacted",
  "dependencies": {
  },
  "devDependencies": {
    "karma": "*",
    "karma-coverage": "0.1.2",
    "karma-junit-reporter": "*",
    "karma-coffee-preprocessor": "~0.1",
    "grunt": "^0.4.2",
    "grunt-contrib-requirejs": "^0.4.3",
    "grunt-contrib-concat": "^0.3.0",
    "grunt-contrib-sass": "^0.7.2",
    "grunt-contrib-htmlmin": "^0.2.0",
    "grunt-contrib-cssmin": "^0.7.0",
    "grunt-contrib-coffee": "^0.10.1",
    "grunt-contrib-uglify": "^0.3.3",
    "grunt-contrib-jst": "^0.5.1",
    "grunt-contrib-qunit": "^0.4.0",
    "grunt-contrib-jshint": "^0.8.0",
    "grunt-contrib-watch": "^0.5.3",
    "grunt-contrib-jasmine": "^0.6.1",
    "grunt-contrib-compress": "^0.6.1",
    "grunt-contrib-handlebars": "^0.6.1",
    "grunt-contrib-less": "^0.9.0",
    "grunt-contrib": "^0.9.0"
  }
}
28
Gaz

./node_modules/.binディレクトリは、npmがノードパッケージのバイナリへのリンクを作成する場所です。から https://docs.npmjs.com/files/folders#executables

実行可能ファイル

グローバルモードの場合、実行可能ファイルはUnixでは{prefix}/binにリンクされ、Windowsでは{prefix}に直接リンクされます。

ローカルモードの場合、実行可能ファイルは./node_modules/.binにリンクされ、npmを介して実行されるスクリプトで使用できるようになります。 (たとえば、npm testを実行すると、テストランナーがパスに含まれるようになります。)


上に貼り付けたpackage.jsonには、binセクションがありません。 npmpackage.jsonからこの例を見てください。

{
  "version": "1.4.9",
  "name": "npm",
  "publishConfig": {
    "proprietary-attribs": false
  },
  "description": "A package manager for node",
  ...
  ...
  "main": "./lib/npm.js",
  "bin": "./bin/npm-cli.js",
  "dependencies": {
    "abbrev": "~1.0.4",
    "ansi": "~0.2.1",
    ...
    ...

具体的には、行"bin": "./bin/npm-cli.js"npm./node_modules/.bin/npmからnode_modules/npm/npm-cli.jsへのリンクを作成するように指示します

2
Hanxue

私の場合、別のコンソールウィンドウで監視モードでwebpackを実行していました。 npm installの実行中にエラーは発生しなかったので、気付くのに少し時間がかかりました。

  1. karma実行中のテストや監視モードで実行中のwebpackなど、依存関係が使用されていないことを確認します
  2. node_modules/karmaなどの依存関係フォルダー、またはnode_modulesフォルダー全体を削除します。依存関係フォルダーが既に存在する場合、NPMは.binフォルダーにsymlinkファイルを作成しないようです。
  3. 再試行npm install

NPM 6.7.0を使用。

1
angularsen

これはバグのようです、 #4851 を参照してください。

1
jgillich

すべての依存関係はdev依存関係であるようです。 NODE_ENV環境変数がproductionに設定されましたか?はいの場合は、元に戻す必要があります。

また、インストール中にエラーが発生しましたか?

0
saladinxu

本当にあなたの質問への答えではありませんが、私は同様の状況があったので、私は--no-bin-linksオプションを付けてnpmを実行するVMので、Windowsホストは文句を言いません。そして、後で、binリンクフォルダが見つかりません...

0
Tominator

これは、npmが壊れているために発生する可能性があります。 npmトラブルシューティング から次のコマンドを試してみてください。問題なく動作するはずです。

curl -L https://www.npmjs.org/install.sh | sh
0
samarth