it-roy-ru.com

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

Я использую npm v1.4.4 и узел v0.10.25 on 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"
  }
}
19
Gaz

Это похоже на ошибку, см. # 4851 .

2
jgillich

В каталоге ./node_modules/.binnpm создает ссылки на двоичный файл пакета узла. От https://www.npmjs.org/doc/files/npm-folders.html

Исполняемые

В глобальном режиме исполняемые файлы связаны с {префикс}/bin в Unix или непосредственно в {префикс} в Windows.

В локальном режиме исполняемые файлы связаны с ./node_modules/.bin так что их можно сделать доступными для скриптов, запускаемых через npm. (Например, , Чтобы при запуске npm Test был указан бегущий по тесту.)


Код package.json, который вы вставили выше, не имеет раздела bin. Взгляните на этот пример из npm's 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

1
Hanxue

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

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

С НПМ 6.7.0.

0
angularsen

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

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

0
saladinxu

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

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