npm не устанавливает зависимость dev devdency, когда он также указан как зависимость приложения - PullRequest
0 голосов
/ 13 октября 2018

Это меня поставило в тупик.Очень легко воспроизводится.

package.json

{
    "dependencies": {},
    "devDependencies": {
        "gulp": "^3.9.1",
        "gulp-less": "^4.0.1"
    }
}

Поместите это в папку и запустите npm install --only=dev.Я пользуюсь узлом v8.9.4 и npm v6.4.1.

Все будет установлено нормально.Откройте каталог node_modules и убедитесь, что там есть модуль less, потому что это зависимость gulp-less.Вы можете использовать этот gulpfile.js для проверки:

var gulp = require('gulp');
var less = require('gulp-less');
gulp.task('default')

Хорошо, теперь добавьте "less": "^3.8.1" к "зависимости", чтобы ваш package.json выглядел так:

{
    "dependencies": {
        "less": "^3.8.1"
    },
    "devDependencies": {
        "gulp": "^3.9.1",
        "gulp-less": "^4.0.1"
    }
}

Удалитеnode_modules файл блокировки папки и пакета и повторный запуск npm install --only=dev.

Вы увидите, что вы не можете запустить файл gulp сейчас, и если вы откроете и посмотрите на пакет less в node_modulesон не будет установлен.

Это повторяемое поведение для меня.Каждый раз, когда я добавляю меньше к зависимостям приложения, он никогда не устанавливается, когда я install --only=dev.

Я что-то упускаю из-за того, как это должно работать, или я нашел ошибку?

...