Ответ 1
Кажется, это ошибка, см. # 4851.
Я использую npm v1.4.4 и node v0.10.25 в Mac OS X 10.9.2.
Недавно я обновил node и npm, а теперь npm install
больше не создает каталог .bin в node_modules.
Я удалил 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"
}
}
Кажется, это ошибка, см. # 4851.
В ./node_modules/.bin
npm
создает ссылки на двоичный файл пакета узла. С https://docs.npmjs.com/files/folders#executables
исполняемые
В глобальном режиме исполняемые файлы связаны с {prefix}/bin в Unix или непосредственно с {prefix} в Windows.
В локальном режиме исполняемые файлы связаны с. /node_modules/.bin, чтобы их можно было сделать доступными для сценариев, запускаемых через npm. (Например, чтобы при запуске теста npm тестовый путь был в пути.)
В 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"
будет "bin": "./bin/npm-cli.js"
npm
создать ссылку на ./node_modules/.bin/npm
на node_modules/npm/npm-cli.js
Кажется, что все ваши зависимости зависят от dev.
Не могли бы вы увидеть, установлена ли ваша переменная среды NODE_ENV
на production
? Если да, вам нужно будет изменить его.
Кроме того, во время установки произошла ошибка?
Это может произойти из-за разбитого npm. Попробуйте выполнить команду npm troubleshooting, и она должна работать нормально.
curl -L https://www.npmjs.org/install.sh | sh
В моем случае webpack
работал в режиме просмотра в другом окне консоли. Я не получил никаких ошибок при npm install
поэтому мне потребовалось время, чтобы заметить.
karma
работает тесты или webpack
, работающие в режиме часовnode_modules/karma
или всю папку node_modules
. Кажется, что NPM не создает файлы символических ссылок в папке .bin, если папка зависимостей уже существует.npm install
С НПМ 6.7.0.
Не совсем ответ на ваш вопрос, но потому что у меня была похожая ситуация: я запускаю npm с опцией --no-bin-links
на моей виртуальной машине, чтобы мой хост Windows не жаловался. А потом я не нахожу папку с ссылками на бин...