Mac OS X 10.9.2でnpm 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"
}
}
./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
セクションがありません。 npm
のpackage.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
へのリンクを作成するように指示します
私の場合、別のコンソールウィンドウで監視モードでwebpack
を実行していました。 npm install
の実行中にエラーは発生しなかったので、気付くのに少し時間がかかりました。
karma
実行中のテストや監視モードで実行中のwebpack
など、依存関係が使用されていないことを確認しますnode_modules/karma
などの依存関係フォルダー、またはnode_modules
フォルダー全体を削除します。依存関係フォルダーが既に存在する場合、NPMは.binフォルダーにsymlinkファイルを作成しないようです。npm install
NPM 6.7.0を使用。
これはバグのようです、 #4851 を参照してください。
すべての依存関係はdev依存関係であるようです。 NODE_ENV
環境変数がproduction
に設定されましたか?はいの場合は、元に戻す必要があります。
また、インストール中にエラーが発生しましたか?
本当にあなたの質問への答えではありませんが、私は同様の状況があったので、私は--no-bin-links
オプションを付けてnpmを実行するVMので、Windowsホストは文句を言いません。そして、後で、binリンクフォルダが見つかりません...
これは、npmが壊れているために発生する可能性があります。 npmトラブルシューティング から次のコマンドを試してみてください。問題なく動作するはずです。
curl -L https://www.npmjs.org/install.sh | sh