NPM не создает каталог .bin

Я использую 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"
  }
}

Ответы

Ответ 1

Кажется, это ошибка, см. # 4851.

Ответ 2

В ./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

Ответ 3

Кажется, что все ваши зависимости зависят от dev. Не могли бы вы увидеть, установлена ​​ли ваша переменная среды NODE_ENV на production? Если да, вам нужно будет изменить его.

Кроме того, во время установки произошла ошибка?

Ответ 4

Это может произойти из-за разбитого npm. Попробуйте выполнить команду npm troubleshooting, и она должна работать нормально.

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

Ответ 5

В моем случае webpack работал в режиме просмотра в другом окне консоли. Я не получил никаких ошибок при npm install поэтому мне потребовалось время, чтобы заметить.

  1. Убедитесь, что зависимости не используется, например, как karma работает тесты или webpack, работающие в режиме часов
  2. Удалите папки зависимостей, такие как node_modules/karma или всю папку node_modules. Кажется, что NPM не создает файлы символических ссылок в папке .bin, если папка зависимостей уже существует.
  3. Повторить npm install

С НПМ 6.7.0.

Ответ 6

Не совсем ответ на ваш вопрос, но потому что у меня была похожая ситуация: я запускаю npm с опцией --no-bin-links на моей виртуальной машине, чтобы мой хост Windows не жаловался. А потом я не нахожу папку с ссылками на бин...